Javascript 隐藏除所选LI之外的所有LI

Javascript 隐藏除所选LI之外的所有LI,javascript,jquery,html-lists,Javascript,Jquery,Html Lists,我想在某个UL中隐藏除我选择的LI之外的所有其他LI <ul> <li><div></div></li> <li><div></div></li> </ul> <ul> <li><div></div></li> -- HIDE <li><div></div>&

我想在某个UL中隐藏除我选择的LI之外的所有其他LI

<ul>
  <li><div></div></li>
  <li><div></div></li>
</ul>
<ul>
  <li><div></div></li>     -- HIDE
  <li><div></div></li>     -- SELECT
  <li><div></div></li>     -- HIDE
</ul>
<ul>
  <li><div></div></li>
  <li><div></div></li>
</ul>

试过这样的吗

$(this).closest('ul').find('li').not(this).hide();


试过这样的吗

$(this).closest('ul').find('li').not(this).hide();


获取包含所有相关
  • 元素的jQuery元素集,然后删除所选元素。例如:

    $('ul#mylist li').not(selector).hide();
    
    从:

    给定一个表示一组DOM元素的jQuery对象,.not()方法从匹配元素的子集构造一个新的jQuery对象。针对每个元件对提供的选择器进行测试;与选择器不匹配的元素将包含在结果中


    如果有对元素对象的引用,您也可以给它本身,而不是选择器。

    获取包含所有相关
  • 元素的jQuery元素集,然后删除所选元素。例如:

    $('ul#mylist li').not(selector).hide();
    
    从:

    给定一个表示一组DOM元素的jQuery对象,.not()方法从匹配元素的子集构造一个新的jQuery对象。针对每个元件对提供的选择器进行测试;与选择器不匹配的元素将包含在结果中

    如果有对元素对象的引用,也可以为元素对象本身指定选择器,而不是选择器。

    这应该可以:

    $( 'ul li' ).click( function( e ) {
            // by default, hide all li's
        $( 'ul li' ).hide();
            // show only the selected li
        $( this ).show();
    });
    

    希望这能有所帮助。

    这应该可以:

    $( 'ul li' ).click( function( e ) {
            // by default, hide all li's
        $( 'ul li' ).hide();
            // show only the selected li
        $( this ).show();
    });
    


    希望这有帮助。

    您从单击的div向上遍历DOM,然后使用
    隐藏其他元素。not($(this).parent()).toggle()
    ->而不是围绕此
    div的
    li

    $('div').click(function () {
        $(this).closest('ul').find('li').not($(this).parent()).toggle();
    });
    
    如果您不希望用户能够推翻他们的决定,可以将
    .toggle()
    替换为
    .hide()


    JS Fiddle:

    从单击的div向上遍历DOM,然后使用
    隐藏其他元素。not($(this).parent()).toggle()
    ->而不是围绕该
    div的
    li

    $('div').click(function () {
        $(this).closest('ul').find('li').not($(this).parent()).toggle();
    });
    
    如果您不希望用户能够推翻他们的决定,可以将
    .toggle()
    替换为
    .hide()

    JS小提琴: