Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery将单击下的元素作为目标_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用jQuery将单击下的元素作为目标

Javascript 如何使用jQuery将单击下的元素作为目标,javascript,jquery,html,Javascript,Jquery,Html,我想隐藏用户单击的元素下的所有内容(但保留上面的内容)。查看此演示: 因此,如果你点击第二个,它下面的三个应该被隐藏。如果单击第四个,则只应隐藏第五个元素 我试着用:不('clicked')来做这件事,但它也针对单击元素上方的元素 有什么想法吗?只需使用以下方法: $(this).nextAll().hide(); 演示:尝试以下方法: $('ul li').click(function() { $('ul li').each(function() { $(this).

我想隐藏用户单击的元素下的所有内容(但保留上面的内容)。查看此演示:

因此,如果你点击第二个
  • ,它下面的三个
  • 应该被隐藏。如果单击第四个
  • ,则只应隐藏第五个元素

    我试着用
    :不('clicked')
    来做这件事,但它也针对单击元素上方的元素


    有什么想法吗?

    只需使用以下方法:

    $(this).nextAll().hide();
    

    演示:

    尝试以下方法:

    $('ul li').click(function() {
        $('ul li').each(function() {
            $(this).removeClass();
        })
        $(this).nextAll("li").slice(0,3).addClass('clicked');
    })
    
    $(this).nextAll("li").hide();
    

    除了VisioN的答案之外,更具体地说,您可以向
    nextAll()
    添加选择器过滤器(“li”),如下所示:

    $('ul li').click(function() {
        $('ul li').each(function() {
            $(this).removeClass();
        })
        $(this).nextAll("li").slice(0,3).addClass('clicked');
    })
    
    $(this).nextAll("li").hide();
    

    不需要,因为在有效标记中,
  • 元素的所有同级元素也应该是
  • 元素。是的,在本例中,这不是必需的,但在有其他类型的子元素的情况下,这会很有帮助。请注意,您也可以只执行
    $('ul li')。removeClass()
    在click事件中,而不是每次
    循环中。@OP希望每次单击时删除类;)@视觉编辑和改变,哇!