0

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*/
});
4

2 に答える 2

2

使用できます.map

testInfoList.ConfiguredTests = = $("#sortableAvailable li").map(function() {
    return { ID:this.id, Value:$(this).find("a").text() };
}).get();

map要素を反復処理し(リスト内のすべてのlis を選択して選択)、それぞれに関数を適用します。結果は jQuery オブジェクトになり、 を使用して抽出して配列に戻すことができます.get()

「値」とは、リンク内のテキストを意味すると仮定しています。他のものが必要な場合は、現在の要素から抽出できます (thisは DOM 要素で$(this)あり、jQuery オブジェクトでラップします)。

于 2013-03-03T06:47:07.483 に答える
1
var myarray = [];    

$("ol li").each(function(){
    myarray.push({
                   ID: $(this).attr('id'),
                   Value: $(this).html()
                 });
});
于 2013-03-03T06:48:13.163 に答える