【问题标题】:How do get contents of a p element one at a time如何一次获取一个 p 元素的内容
【发布时间】:2016-08-07 01:47:11
【问题描述】:

使用jQuery,我需要单独解析每个<p>标签的内容,然后用新文本替换文本。

此刻的代码如下:

str = $('p').text();
str = str.replace('yadayada','yada');
$('p').text(str);

目前正在获取所有<p> 标签的内容,将它们连接起来,然后将大量文本替换为每个<p>,这很接近但不是我想要的。

有没有办法一次获取每个<p> 块的内容并仅用它的内容替换它?我不知道它们应用了哪些 id 或类,因此需要使用通用标签。

非常感谢任何帮助! :)

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

使用接受回调作为第二个参数的text() 版本,并从回调中返回替换的内容

$('p').text(function(i, str) {
  return str.replace('yadayada', 'yada');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>yadayada-1</p>
<p>yadayada-2</p>
<p>yadayada-3</p>
<p>4</p>

【讨论】:

    【解决方案2】:

    您可以在集合上使用.each 方法:

    $('p').each(function (pEl) {
        var text = pEl.textContent;
    });
    

    【讨论】:

      【解决方案3】:

      使用text(fn)

      返回要设置的文本内容的函数。接收集合中元素的索引位置和旧文本值作为参数。

      $('p').text(function(_ text){
          return text.replace('yadayada','yada');
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-28
        • 2016-07-06
        • 1970-01-01
        • 2011-05-06
        • 2017-11-03
        • 1970-01-01
        • 1970-01-01
        • 2020-03-07
        相关资源
        最近更新 更多