我想迭代ol并将所有li保存到数组
<ol id="sortableAvailable">
<li id="1"><a href="" >Foo 1</a></li>
<li id="2"><a href="" >Foo 2</a></li>
<li id="3"><a href="" >Foo 3</a></li>
<li id="4"><a href="" >Foo 4</a></li>
</ol>
js应该是这样的:
var testInfoList = {};
testInfoList.ConfiguredTests = [];
/* some iteration that do the following */
testInfoList.ConfiguredTests.push({
ID: /*here i want the ID*/,
Value: /*here i want the value*/
});
答案 0 :(得分:2)
您可以使用.map
:
testInfoList.ConfiguredTests = = $("#sortableAvailable li").map(function() {
return { ID:this.id, Value:$(this).find("a").text() };
}).get();
map
将迭代您的元素(选中查找列表中的所有li
)并将函数应用于每个元素。结果将是一个jQuery对象,可以使用.get()
将其提取回数组。
我假设“值”是指链接内的文字;如果你想要别的东西,可以从当前元素中提取它(this
是DOM元素,$(this)
将它包装在jQuery对象中。
答案 1 :(得分:1)
var myarray = [];
$("ol li").each(function(){
myarray.push({
ID: $(this).attr('id'),
Value: $(this).html()
});
});