除了当前的li之外,删除li中的所有ul

时间:2012-03-19 11:04:07

标签: javascript jquery jquery-selectors

除了当前ul之外,我必须删除li中的所有li

<ul>
        <li id="Li0">
            <ul>
                <li><span>Childnode1</span></li></ul>
        </li>
        <li id="Li1">
            <ul>
                <li><span>Childnode2</span></li></ul>
        </li>
        <li id="Li2">
            <ul>
                <li><span>Childnode3</span></li></ul>
        </li>
        <li id="Li3">
            <ul>
                <li><span>Childnode4</span></li></ul>
        </li>
        <li id="Li4">
            <ul>
                <li><span>Childnode5</span></li></ul>
        </li>
        <li id="Li5">
            <ul>
                <li><span>Childnode6</span></li></ul>
        </li>
    </ul>

因此,如果我点击li的ID为“li4”,则此li之前或此li旁边的其他所有li都应该ul .not 1}}从dom中删除。

我在考虑在jquery中使用{{1}}运算符,但到目前为止还没有这样做。

4 个答案:

答案 0 :(得分:1)

是你在寻找什么?

  $(function(){
            $('li').click(function(){
                $(this).siblings().children("ul").remove();
            });        
     });

答案 1 :(得分:0)

这应该有所帮助。

$(function () {
    $('ul:first').delegate("li[id^='L']", 'click', function () {
        $("ul:first > li[id!='"+$(this).attr('id')+"'] > ul").remove();
    });        
});​

演示:http://jsfiddle.net/EJWnn/

答案 2 :(得分:0)

演示:http://jsfiddle.net/wwvBL/

$('li').on('click',function(){
    var obj= $(this);
    id= obj.attr('id');
    obj.parent().find('li:not(#'+id+') > ul').remove();
})

答案 3 :(得分:0)

使用兄弟姐妹查找所有其他相邻元素:

$("li").click(function() {
    $(this).siblings().find("ul").remove();
});

您可能希望拥有比“li”更具体的选择器。