You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery实现页面resize时修改指定链接文本的方法问询

更简洁的方案来修改特定链接的文本内容(响应式场景)

嘿,我懂你想要一个更省心的方式来修改这个特定链接的文本,尤其是在页面尺寸变化的时候。你之前用contents().filter()过滤文本节点的方法确实有点繁琐,这里有几个更直接的优化方案:

方案1:简化jQuery文本节点操作(无需修改HTML)

既然你的链接结构是固定的——<i>图标后面跟着文本节点,那我们可以直接定位到最后一个子节点(也就是目标文本),不用过滤所有节点:

// 获取目标链接并替换文本内容
$('a.roll-button[href="uniqueLinkInfo"]').contents().last().replaceWith('你的新文本!');

如果要结合页面尺寸调整,把逻辑放在resize事件里就行:

$(window).on('resize', function() {
  const $targetLink = $('a.roll-button[href="uniqueLinkInfo"]');
  // 根据窗口尺寸切换文本
  if ($(window).width() < 768) {
    $targetLink.contents().last().replaceWith('Call Us!');
  } else {
    $targetLink.contents().last().replaceWith('Call Now!');
  }
});
// 页面加载时触发一次,确保初始状态正确
$(window).trigger('resize');

方案2:给文本包裹<span>(长期维护更友好)

如果可以修改HTML的话,给文本加个专属的<span>标签,后续修改会超级简单,完全不用处理文本节点:
修改后的HTML:

<a href="uniqueLinkInfo" class="roll-button button-slider"> 
  <i class="fa fa-phone"></i> 
  <span class="link-text">Call Now!</span>
</a>

对应的JS代码(响应式场景):

$(window).on('resize', function() {
  const $textSpan = $('a.roll-button[href="uniqueLinkInfo"] .link-text');
  $textSpan.text($(window).width() < 768 ? 'Call Us!' : 'Call Now!');
});
$(window).trigger('resize');

这个方案的好处是结构清晰,哪怕以后链接里加了其他元素,只要<span class="link-text">存在,就能精准修改文本。

方案3:纯JavaScript方案(不用jQuery)

如果你的项目不想依赖jQuery,用原生JS也能轻松实现:

const targetLink = document.querySelector('a.roll-button[href="uniqueLinkInfo"]');
// 监听窗口 resize 事件
window.addEventListener('resize', function() {
  // 找到文本节点(这里是链接的第二个子节点,第一个是<i>)
  const textNode = targetLink.childNodes[1];
  textNode.textContent = window.innerWidth < 768 ? 'Call Us!' : 'Call Now!';
});
// 初始化执行
window.dispatchEvent(new Event('resize'));

这些方案都比你之前的过滤方式更简洁,而且逻辑更直观,选最适合你项目场景的就行~

内容的提问来源于stack exchange,提问作者Jacob Baker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:06:29