如何使用jQuery将所有元素内容放入数组中?

4
<div id="main">
<p>Text1</p>
<p>Text2</p>
<p>Text3</p>
</di>

结果应该是:

["text1","text2","text3"]
2个回答

18

使用jQuery的.map()方法可以实现此功能:

var items = $('#main p').map(function () { return $(this).text(); }).get();

.map() 迭代其元素,在每个元素上调用一个函数,并在新数组中记录函数的返回值,然后将该新数组返回。

您也可以使用简单的 .each() 来解决此问题:

var items = [];

$('#main p').each(function (i, e) {
  items.push($(e).text());
});

有没有更简洁的方式? - faressoft

0

这个会起作用:

var p = $('#main p').map(function () {
        return '"' + $(this).text() + '"';
    }).get().join(',');
    p = "[" + p + "]";

map() 允许您迭代每个匹配项并从中获取一个值,该值插入到类似数组的对象中。然后,get() 将其作为 Javascript 数组返回,并且 .join 将数组转换为字符串。


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