0

我有以下html内容....

我只需要搜索元素中的li(s) 文本ul

例如,

$("#ul_first").find(li).each(function(index,value)
{
    alert(index)
});

这里的问题是 find 方法li#ul_second元素中找到。我只希望它li在某个ul元素中找到元素,而不是子ul元素。

<ul id="ul_first">
     <li>a</li>
     <li>b</li>
     <li>c</li>
     <li>d</li>
     <li>c
             <ul id="ul_second">
                               <li>a</li>
                               <li>b</li>
                               <li>c</li>
                               <li>d</li>
             </ul>    
     </li>
</ul>
4

4 回答 4

1

尝试添加子选择器。>将只选择直接子级。使用 find 就像省略>which 将选择所有后代。

$("#ul_first > li").each(function(index,value) { alert(index) });
于 2013-03-28T12:56:08.953 回答
1

你可以像下面这样尝试......它会帮助你

小提琴:http: //jsfiddle.net/RYh7U/119/

Traversing/children

$('#ul_first').children('li').each(function(index,value) 
{     
 alert(index); 
});
于 2013-03-28T13:10:41.090 回答
0

尝试使用 `$("#ul_first > li")$? 这应该找到 li 直接在 ul_first 下面的元素

于 2013-03-28T12:57:12.463 回答
0

将您的选择器更改为'#ul_first > li'. 这将检查所有属于#ul_first 的孩子的li。

>当下一个选择器是其父选择器的直接子代时,子选择器匹配。

来源: http ://www.w3.org/TR/CSS2/selector.html#child-selectors

于 2013-03-28T12:57:16.453 回答