如何一次获取一个 p 元素的内容
Posted
技术标签:
【中文标题】如何一次获取一个 p 元素的内容【英文标题】:How do get contents of a p element one at a time 【发布时间】:2016-08-07 01:47:11 【问题描述】:使用jQuery,我需要单独解析每个<p>
标签的内容,然后用新文本替换文本。
此刻的代码如下:
str = $('p').text();
str = str.replace('yadayada','yada');
$('p').text(str);
目前正在获取所有<p>
标签的内容,将它们连接起来,然后将大量文本替换为每个<p>
,这很接近但不是我想要的。
有没有办法一次获取每个<p>
块的内容并仅用它的内容替换它?我不知道它们应用了哪些 id 或类,因此需要使用通用标签。
非常感谢任何帮助! :)
【问题讨论】:
使用.text()
的版本和回调:api.jquery.com/text/#text-function
【参考方案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');
);
【讨论】:
以上是关于如何一次获取一个 p 元素的内容的主要内容,如果未能解决你的问题,请参考以下文章