jquery在li中迭代ul

时间:2011-01-25 14:58:52

标签: jquery jquery-selectors

我正在使用以下代码来迭代下面给出的HTML元素

<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;

但孩子的事情不起作用

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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