如何一次获取一个p元素的内容

How do get contents of a p element one at a time

本文关键字:元素 一个 获取 何一次      更新时间:2023-09-26

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

目前的代码看起来像:

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

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

有没有一种方法可以一次获取每个<p>块的内容,并仅用其内容替换它?我不知道应用了哪些id或类,因此需要使用泛型标记。

非常感谢您的帮助!:)

使用text(fn)

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

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

使用接受回调的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>

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

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