Javascript 仅在<;的第一级子级上应用JQuery;ul>;特定阶级的

Javascript 仅在<;的第一级子级上应用JQuery;ul>;特定阶级的,javascript,jquery,Javascript,Jquery,如何从这样的列表中仅选择父级的链接元素 <ul class="catlist"> <li><a href="#">Link</a></li> <li><a href="#">Link</a> <ul class="sublist"> <li><a href="#">Link</a></li&g

如何从这样的列表中仅选择父级的链接元素

<ul class="catlist">
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a>
        <ul class="sublist">
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
        </ul>
    </li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
</ul>

使用直接后代选择器

$('ul.catlist > li').click(function() {
    // Do something
});
或者,您也可以使用
子项

$('ul.catlist').children('li').click(function() {
另外,需要阻止其他子代
li
s的事件冒泡,以便直接子代的事件处理程序不会触发

$('ul.catlist > li li').on('click', function (e) {
    return false; // e.stopPropagation();
});

使用直接后代选择器

$('ul.catlist > li').click(function() {
    // Do something
});
或者,您也可以使用
子项

$('ul.catlist').children('li').click(function() {
另外,需要阻止其他子代
li
s的事件冒泡,以便直接子代的事件处理程序不会触发

$('ul.catlist > li li').on('click', function (e) {
    return false; // e.stopPropagation();
});

你需要手动处理这个案子

$('ul.catlist > li').click(function (e) {
    if ($(e.target).closest('ul').hasClass('catlist')) {
        console.log('clicked')
    }
});

另一种选择是停止从内部
li
元素传播事件

$('ul.catlist > li').click(function (e) {
    //do something
});

$('ul.catlist ul').click(function (e) {
    e.stopPropagation();
});

你需要手动处理这个案子

$('ul.catlist > li').click(function (e) {
    if ($(e.target).closest('ul').hasClass('catlist')) {
        console.log('clicked')
    }
});

另一种选择是停止从内部
li
元素传播事件

$('ul.catlist > li').click(function (e) {
    //do something
});

$('ul.catlist ul').click(function (e) {
    e.stopPropagation();
});

传播呢传播呢