我在对象中有一个无序列表:
var myUL = $('ul#theID'); //I send this var to another function in the code
我只想要这个对象的直接孩子(我在每个'li'中还有另一个'ul',其中也包含'li'),但是这个选择器不起作用:
$(myUL + '>li').each( etc, etc...
它在Firebug中的这个选择器上给出了错误“未捕获的异常:语法错误,无法识别的表达式:[object Object]”。
如果我使用$('li', myUL)
它会给我所有的'li'与ul,而不仅仅是直接的孩子,这不是我想要的。我只想要直接的孩子。
正确的语法是什么?
答案 0 :(得分:3)
尝试
var li_children = myUL.children('li');
(正确地说,<ul>
无论如何只能有<li>
个孩子。)
答案 1 :(得分:1)
$('>li', myUl)
这应该足够吗?
答案 2 :(得分:1)
var myUL = Jquery('ul#theID');
jQuery('>li', myUL);
jQuery selector works this way
jQuery(selector, context);
答案 3 :(得分:0)
您不需要在以ID结尾的选择器的开头使用标记名称。仅ID就是最快的选择器。使用直接子方法将比选择器更快。也没有在.children()方法中添加选择器将允许jQuery跳过不应该被要求的过滤步骤,因为你应该拥有所有'li'子项,无论如何:
var $myUls = $( "#theID" ).children();
干杯, awirick