2011-01-25 48 views
0

我用下面的代码迭代以下jQuery的李

<ul id="sortable"> 
<li> 
<p> item 1</p> 
<ul id="nested-sortable"> 
    <li> 
    Sub item 1 
    </li> 
    <li> 
    Sub item 2 
    </li> 
    <li> 
    Sub item 3 
    </li> 
</ul> 
</li> 
<li> 
<p> item 2</p> 
</li> 
</ul> 

给了JavaScript

var jsonSeqObj = {}; 
alert('hi'); 
$('ul#sortable li').each(function(index,pele) { 
    alert($(pele).attr('id')); 
    $(pele).children('ul#nested-sortable li').each(function(idx, chele) { 
    alert(chele.attr('id')); 
    jsonSeqObj.push({REF_ID:$(chele).attr('id') , NEW_SEQ_NO:idx }); 
}); 
jsonSeqObj.push({REF_ID:$(pele).attr('id') , NEW_SEQ_NO:index }); 
}); 

li ul li is too long, line wraps but no indention

alert(jsonSeqObj); 
return jsonSeqObj; 

的HTML元素中迭代UL但孩子的事情是不起作用

错误:对象不支持此属性。

回答

1

您的标记与示例中的标记相同吗?或者你有多个嵌套可排序的ul-s?也许问题是您在页面上有重复的ID(Id应该是唯一的)。

+0

oryol我有更多的嵌套排序ul – 2011-01-25 15:03:32

0

alert(chele.attr('id')); 但这里的chele是DOM对象(不是jQuery),所以它没有attr方法。这就是为什么你越来越'对象不支持这个属性''