在我的页面中,我有很多DIV和P标签,我想将所有这些标签的文本更改为“Hi”(任意单词)。我能想到的只有:
$('div, p').not('.btn').each ( function() {
var oT = $(this).text();
$(this).text ( 'hi ' + oT );
});
<div class='btn'>Change All Text</div>
<div id='container1'>
main content
<div>
div > div
<p>
div > div > p
</p>
</div>
<p>div > p </p>
<p>div > p </p>
</div>
<p>
p
</p>
<p>P
</p>
现在,它不是改变所有Div的文本,而是改变父对象的文本。一旦它改变了父对象的文本,自动显然所有的孩子都会消失。所以我们只剩下一个Div和两个P标签。
我能做的另一件事是:
var oT = $(this).html();
$(this).html ( 'hi ' + oT );
这会以某种方式更改父对象的文本,并且子项保持不变。
所以问题是如何改变所有DIV和P标签的文本。嵌套深度没有限制。
P.S。这不是一个真正的问题,我只是想看看它是否可以完成。
答案 0 :(得分:1)
$('.btn').click ( function () {
$('div, p').not('.btn').each ( function() {
$(this).prepend('hi');
});
});
示例:Fiddle