javascript - jQuery 查找和替换字符串

标签 javascript jquery jquery-selectors

我在网站的某处有一个特定的文本,比方说“lollypops”,我想用“marshmellows”替换所有出现的这个字符串。问题是我不知道文本的确切位置。我知道我可以做类似的事情:

$(body).html($(body).html().replace('lollypops', 'marshmellows'));

这可能会奏效,但我需要尽可能少地重写 HTML,所以我在想:

  1. 搜索字符串
  2. 找到最近的父元素
  3. 只重写最近的父元素
  4. 甚至在属性中替换它,但不是全部,例如在 class 中替换它, 但不在 src

例如,我会有这样的结构

<body>
    <div>
        <div>
            <p>
               <h1>
                 <a>lollypops</a>
               </h1>
            </p>
            <span>lollypops</span>
        </div>
    </div>
    <p>
       <span class="lollypops">Hello, World!</span>
       <img src="/lollypops.jpg" alt="Cool image" />
    </p>
<body>

在这个例子中,每个出现的“lollypops”都会被替换,只有<img src="...将保持不变,实际操作的唯一元素将是 <a>和两个<span> s.
有人知道怎么做吗?

最佳答案

你可以这样做:

$("span, p").each(function() {
    var text = $(this).text();
    text = text.replace("lollypops", "marshmellows");
    $(this).text(text);
});

最好用合适的类名标记所有需要检查的文本标签。

另外,这可能会有性能问题。一般来说,jQuery 或 javascript 并不真正适合这种操作。你最好在服务器端做。

关于javascript - jQuery 查找和替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115152/

相关文章:

javascript - 动态生成的日历元素上的 jQuery 单击事件?

javascript - 意外的 token '}'

javascript - Webpack:如何在一个全局变量下隐藏导出函数/变量?

javascript - Node.js 和 mongodb : TypeError: Cannot read property 'findAll' of undefined

javascript - :active pseudo-class - making a keypress act like a mouse click with respect to :active

javascript - JQuery 选择器不工作,而 javascript DOM 工作正常

javascript - 获取复选框以仅基于复选框标签内的字符串切换 div - jQuery

javascript - 使用ajax响应刷新div

jQuery UI - 使用位置 API 定位隐藏的 div 位置不正确

jQuery 隐藏/显示元素