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

时间:2011-02-09 18:12:45

标签: javascript jquery arrays element

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

结果应该是:

["text1","text2","text3"]

2 个答案:

答案 0 :(得分:16)

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());
});

答案 1 :(得分:0)

这将有效:

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

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