如何迭代DOM ol并使用jquery将其li值保存到数组中

时间:2013-03-03 06:44:38

标签: jquery

我想迭代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*/
});

2 个答案:

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