将所有元素值放入一个数组中

3

我有以下的标记:

<div class="class1"><p>line1</p><p>line 2</p></div>

使用jQuery,我如何获取div中所有p标签的值并将它们放入一个数组中?
2个回答

7
使用 .map() 方法:
var arr = $('.class1 p').map(function () {
    return $(this).text();
}).get();

@Bjarki,没有.get(),数组会被jQuery包装,这仍然有效,但是你会有一些无意义的函数,如findclick等仍然附加在上面。 - David Tang
好的,明白了。谢谢你提供的信息。 - Bjarki Heiðar
更具体地说,.map() 返回一个 jQuery 对象,而 .get() 则从其元素创建一个本地数组。 - Lightness Races in Orbit

2
我会假设你指的是 <p> 元素的内容,而不是它们的值(即无)。
var text = [];
$('.class1 > p').each(function() {
    text[text.length] = $(this).text();
});

Box9的解决方案更符合jQuery的惯用语(可能也更好),尽管两者都是有效的。 - Lightness Races in Orbit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接