我的代码类似于:
<div>
<div> randomText 11235 </div>
<div> randomText </div>
<div> randomText </div>
<div> randomText </div>
<div> randomText </div>
</div>
如您所见,每个div都包含随机文本,但第一个div也在末尾添加了“11235”。
这个“11235”将添加到任何div的末尾(请注意,这可以是多个div)。
以下是可能发生的一种情况:
<div>
<div> randomText </div>
<div> randomText 11235 </div>
<div> randomText </div>
<div> randomText 11235 </div>
<div> randomText </div>
</div>
是否可以将那些仅添加了11235的div作为目标并删除11235.
我更喜欢javascript中的解决方案(jQuery很好)。
由于
答案 0 :(得分:9)
使用jQuery,您可以迭代包含11235的所有div,并使用标准的js-replace函数替换这些元素的文本中的“11235”:
$("div div:contains('11235')").each(function () {
$(this).text($(this).text().replace("11235",""));
});
正如Rick所指出的,你也可以使用隐式迭代,它稍微优雅一点:
$("div div:contains(11235)").text(function (i, text) {
return text.replace("11235","");
});
如果每个div元素都有可能包含11235的多次出现,请使用替换的正则表达式:
$("div div:contains(11235)").text(function (i, text) {
return text.replace(/11235/g,"");
});
答案 1 :(得分:1)
您可以使用:contains()
选择器和jQuery的html()
方法,如下所示:
$("div:contains(11235)").html(function( i, html ) {
return $.trim( ( html || "" ).replace(/11235/g, "") );
});
这不需要使用each()
进行迭代,因为jQuery构建在“隐含迭代”的上下文中,这意味着所有setter方法将自动迭代它们从调用jQuery对象接收的每个元素(除非另有说明)