【发布时间】:2011-02-09 18:12:44
【问题描述】:
<div id="main">
<p>Text1</p>
<p>Text2</p>
<p>Text3</p>
</di>
结果应该是:
["text1","text2","text3"]
【问题讨论】:
标签: javascript jquery arrays element
<div id="main">
<p>Text1</p>
<p>Text2</p>
<p>Text3</p>
</di>
结果应该是:
["text1","text2","text3"]
【问题讨论】:
标签: javascript jquery arrays element
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());
});
【讨论】:
这将起作用:
var p = $('#main p').map(function () {
return '"' + $(this).text() + '"';
}).get().join(',');
p = "[" + p + "]";
map() 允许您遍历每个匹配项并从中获取一个值,该值被插入到类似数组的对象中。 get() 然后将其作为 Javascript 数组返回,然后 .join 将数组变成字符串。
【讨论】: