jquery在特定级别上选择子元素

时间:2014-02-26 16:14:46

标签: javascript jquery html dom select

我有一个类似

的DOM
<ul>
 <li> list item </li>
 <li> list item </li>
 <li> has sub element
  <ul>
   <li> list item </li>
   <li> list item </li>
   <li> list item </li>
   <li> has sub element
     <ul>
      <li> list item </li>
      <li> list item </li>
      <li> list item </li>
     </ul>
   </li>
  </ul>
 </li>
 <li> list item </li>
</ul>

除了子元素元素所具有的所有li元素的总和之外,我怎样才能得到第一级li计数

6 个答案:

答案 0 :(得分:2)

尝试> child-selector.children()

<ul id="FirstUL">
$('#FirstUL > li').length;

$('ul&gt; li:not(:has(ul))')。length;


.parents()

  

获取当前匹配元素集中每个元素的祖先,可选择通过选择器进行过滤。

Fiddle Demo

var len = $('ul > li').filter(function(){
    return $(this).parents('ul').length == 1;
}).length;

<小时/> 先生Arun P Johny

更好地为此而努力

Fiddle Demo

$('li:not(ul ul li)').length;

答案 1 :(得分:0)

或尝试

$("#ulID").children().length

在你的情况下返回4

答案 2 :(得分:0)

您可以尝试以下方法之一:

$('ul:first > li').length;
$('ul:eq(0)').children('li').length;

答案 3 :(得分:0)

你应该给第一个ul的id或类, 那么你可以使用像

alert($(".classname").children("li").length);

答案 4 :(得分:0)

如果这有助于你,请提前投票:)

https://api.jquery.com/children/

jquery .children()返回任何元素的直接子元素

所以你要么将父元素ul存储在一个变量中(如果这是一个动态应用程序你应该这样做,或者如果你在该元素上做了很多js),或者你需要在那个ul上放一个ID 。然后你只需使用:

  $('#myId').children('li');

这给你一个四个li的数组。

从那里你可以直接获得长度:

   $('#myId').children('li').length;

var x = $('#myId').children('li'); count = x.length;

答案 5 :(得分:0)

 $('ul:first').children('li').length

给你4的结果。

你可以在这里试试 - http://jsfiddle.net/rQWb3/