我有我的網頁上的這個簡化版本(其一團糟IRL):jQuery:我如何構建一個2d數組?
<li id=section1 class=sortable_section>
<header>
<ul id=container1>
<li id=item1 class=sortable_item>
<li id=item2 class=sortable_item>
</container
</section
<li id=section2 class=sortable_section>
<header>
<ul id=container2>
<li id=item3 class=sortable_item>
<li id=item4 class=sortable_item>
<li id=item5 class=sortable_item>
</container>
</section>
所以,我能做的$j("container1").sortable('serialize')
它創建的所有含Li的的ID數組。所以我會得到["item1", "item2"]
爲container1
。
如何使一個數組,看起來像這樣:
[
["section1", ["item1", "item2"]],
["section2", ["item3", "item4", "item5"]]
]
這是香港專業教育學院一直在努力:但它不工作
d = $j.makeArray(
$j('.sortable_section').each(function(i){
[$j(this).attr("id"),
$j.makeArray($j.map($j("#"+$j(this).attr("id")+" .sortable_item"), function(s,j){
return ($j(s).attr("id"));
}))]
}));
但它返回整個對象,而不只是ID ...
編輯: 根據答案的建議之一,這是現在我有什麼
d = $j(".sections > li").map(function(index, element){
return [$j(element).attr('id'),
$j("#"+$j(element).attr('id') + " .content").map(function(subindex, subelement){
return $j(subelement).attr('id');
}).toArray()];
}).toArray();
,但我得到這個錯誤
TypeError: Result of expression near '...}).toArray()]...' [undefined] is not a function.
當我做$j(element).attr('id')
和$j(subelement).attr('id')
提醒我得到正確的ID
當我提醒這段代碼時,它告訴我我的數組是[object Object],而不是我的問題中所需的數組。 – NullVoxPopuli 2010-08-24 20:32:55
我編輯了答案。 (忘了jQuery map函數返回一個jQuery集合) – 2010-08-24 21:04:56
我得到這個錯誤TypeError:'...})附近的表達式結果toArray()...'[undefined]不是一個函數。 – NullVoxPopuli 2010-08-25 13:00:34