jQuery数组元素的字符串

Gue*_*sed 2 html javascript jquery

从给定的HTML,我想提取pText数组,所以我结束了两个<p>项目(在这种情况下),从中我可以提取两个文本字符串"link test1""link test2",并弹出一个警告为他们每个人.为什么以下脚本不起作用?

HTML:

<div>
    <p><a href='/'>link</a> test1</p>
    <p><a href='/'>link</a> test2</p>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

var pText = $('div').find('p');

for (i = 0; i < pText.length; i++) {
    alert(pText[i].text());
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*lli 7

既然你正在使用jQuery,如果你想使用这个.text()方法,你必须提取一个jQuery对象而.eq(i)不是使用[i],它返回一个普通元素.

这是正确的代码:

var pText = $('div').find('p');

for (i = 0; i < pText.length; i++) {
    alert(pText.eq(i).text());
}
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用.each()方法(而不是for循环)简化代码,该方法为jQuery集合的每个元素调用给定函数(pText).在我看来,这更容易,你走了:

var pText = $('div').find('p');

pText.each(function(i, el) {
    alert($(el).text());
});
Run Code Online (Sandbox Code Playgroud)