2016-04-15 90 views
-1

使用jQuery,我需要分别解析每个<p>标记的内容,然后用新文本替换文本。如何一次获得一个p元素的内容

此刻的代码如下所示:

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

这是目前获得所有<p>标签的内容,串联他们,那么文本的大规模块替换到每个<p>这是接近但不完全是什么我希望这样做。

有没有办法一次获得每个<p>块的内容,并用其内容替换它?我不知道应用了什么ID或类,因此需要使用通用标签。

任何帮助非常感谢! :)

+2

使用'.text()'版本的回调函数:http://api.jquery.com/text/#text-function – Andreas

回答

3

使用text(fn)

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

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

您可以在总汇使用.each方法:

$('p').each(function (pEl) { 
    var text = pEl.textContent; 
}); 
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>