我很难弄清楚如何在某些元素/节点类型而不是其他元素/节点类型上运行方法。
例如,这里有一些 HTML:
<div id="parent">
<div class="subparent">Changing Text
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Changing Text</div>
<div class="child">Changing Text
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Changing Text</div>
</div>
我的方法是这样的:
jQuery.fn.changingtext = function(expr) {
return this.each(function() {
this.innerHTML = this.innerHTML
.replace(/Changing Text/ig, "Edited!")
});
};
现在我想更改除 div.no-change 之外的所有内容的文本。最终结果应该是这样的:
<div id="parent">
<div class="subparent">Edited!
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Edited!</div>
<div class="child">Edited!
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Edited!</div>
</div>
我不知道有什么方法可以选择父母而不在其孩子上运行该方法。任何帮助,将不胜感激。谢谢!
编辑:这里使用 Paulo 的代码,但不工作:http: //jsbin.com/usaxa
Edit@Jeff Meatball Yang:嗨,使用您的就地替换它输出为文本而不是 html:http: //jsbin.com/idina
我也无法使用其他方法:http: //jsbin.com/aguca
你能提供一个例子吗?
谢谢!