<span id="spanCompare_5_7">
<input type="radio" name="fCompare_5_7" id="fCompare0" value="0">Filter
<input type="radio" name="fCompare_5_7" id="fCompare1" value="1">Compare
</span>
如何将“比较”文本替换为其他内容? 我有一些代码块,我无法编辑它,我只能通过jq访问。 跨度id“spanCompare_5_7”是通用的,因此它们中的更多都在网站上,并且所有这些都需要相同的更改,所以我不能将此id用作静态选择器,例如$( “#spanCompare_5_7”)。 我永远不知道会出现哪些数字,正如我所说,我需要改变所有数字。
有什么想法吗?
答案 0 :(得分:1)
您可以遍历元素的childNodes
并重置匹配的nodeValue
后代的textNode
:
$('span[id^="spanCompare"]').contents().each(function() {
if ( this.nodeType === 3 && $.trim(this.nodeValue) === 'Compare' )
this.nodeValue = 'whatever';
});
如果您想要破坏性地(通过更改属性和可见内容)重置元素的innerHTML
,您可以使用html
方法:
$('span[id^="spanCompare"]').html(function(_, h) {
return h.replace(/Compare/g, 'whatever');
});
答案 1 :(得分:0)
也许是这样的?
var html = $('#spanCompare_5_7').html();
html = html.replace("Compare", "");
$('#spanCompare_5_7').html(html);
答案 2 :(得分:0)
尝试:
var spn = $('#spanCompare_5_7');
spn.html(spn.html().replace(/Compare\b/, 'replacement'));