0

在我的页面中,我有许多 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>

见:http: //jsbin.com/usepuq/

现在,它所做的不是更改所有 Div 的文本:它正在更改父对象的文本。一旦它改变了父对象的文本,所有子对象都会自动消失。所以我们只留下了一个 Div 和两个 P 标签。

我可以做的另一件事是:

 var oT = $(this).html();
 $(this).html ( 'hi ' + oT );

这以某种方式改变了父对象的文本,而子对象保持不变。

所以问题是我们如何更改所有 DIV 和 P 标签的文本。嵌套深度没有限制。

PS这不是一个真正的问题,我只是想看看它是否可以完成。

4

1 回答 1

1

你试过这个吗?

$('.btn').click ( function () {
  $('div, p').not('.btn').each ( function() {

      $(this).prepend('hi');

  });
});

示例:小提琴

于 2012-06-06T06:06:23.447 回答