Javascript Jquery获取不带父项的列表值

Javascript Jquery获取不带父项的列表值,javascript,jquery,list,parent,Javascript,Jquery,List,Parent,我现在有一段代码,它创建了一个带有该列表项值的Alert()。 现在,当我单击另一个列表项作为父项的列表项时。它会提醒他们两个 $("#nav li").click(function() { $LiValue = this.value; alert($LiValue); }); 例如。这是HTML <li value="1">Home</li> <li value="2">Information <ul class="sub

我现在有一段代码,它创建了一个带有该列表项值的Alert()。 现在,当我单击另一个列表项作为父项的列表项时。它会提醒他们两个

$("#nav li").click(function() {
    $LiValue = this.value;
    alert($LiValue);
});
例如。这是HTML

<li value="1">Home</li>
  <li value="2">Information
    <ul class="subs">
    <li value="3">History</li>
    <li value="4">Present</li>
    <li value="5">Future</li>
  </ul>
</li>
主页
  • 信息
    • 历史
    • 目前
    • 未来
  • 现在,当我单击列表项“信息”时,它将返回值2 当我单击列表项“Present”时,它将返回值4,然后返回值2

    如何仅返回单击的列表项而不返回父项

    --------->>>>解决了!!(还不能接受答案)
    谢谢大家帮助我。我会尽快接受答案。谢谢大家!

    JavaScript中的事件自然会在DOM树上冒泡,从子元素到它们的祖先。您可以通过以下方式停止此行为


    JavaScript中的事件自然会在DOM树上冒泡,从子元素到它们的祖先。您可以通过以下方式停止此行为

    或者尝试添加
    返回false

    说明:区别在于
    返回false更进一步,因为它还防止事件传播(或“冒泡”)DOM。您可能不知道这一点的原因是,每当元素上发生事件时,该事件也会在每个父元素上触发。
    换句话说:

    function() {
      return false;
    }
    
    //等于

    function(e) {
      e.preventDefault();
      e.stopPropagation();
    }
    
    请参阅此以了解进一步的解释

    或者尝试添加
    返回false

    说明:区别在于
    返回false更进一步,因为它还防止事件传播(或“冒泡”)DOM。您可能不知道这一点的原因是,每当元素上发生事件时,该事件也会在每个父元素上触发。
    换句话说:

    function() {
      return false;
    }
    
    //等于

    function(e) {
      e.preventDefault();
      e.stopPropagation();
    }
    

    有关进一步的解释,请参见此

    问题的解决方法是stopPropagation()。此函数告诉您“防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知。”

    基本上,不会为任何父元素触发事件。要使用此方法,请处理click函数提供的第一个参数。然后调用函数内部的方法。您的方法应该如下所示

    $("#nav li").click(function(e) {
        e.stopPropagation()
        $LiValue = this.value;
        alert($LiValue);
    });
    

    解决问题的方法是stopPropagation()。告诉您,此函数“防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知。”

    基本上,不会为任何父元素触发事件。要使用此方法,请处理click函数提供的第一个参数。然后调用函数内部的方法。您的方法应该如下所示

    $("#nav li").click(function(e) {
        e.stopPropagation()
        $LiValue = this.value;
        alert($LiValue);
    });
    

    还包括一篇关于这方面以及其他有用的文章。还包括一篇关于这方面以及其他有用的文章。呵呵,你的回答太好了。。。这不是我的专业,所以我不知道这是否是一个好的解决方案。稍微解释一下为什么你的建议会奏效,这将大大有助于解决这个问题。别忘了,很多新手总是来Stack Overflow,我们可以从你那里学到一些东西。对你来说可能是显而易见的,但对这个领域的新手来说往往不是如此;)@塔林·伊斯特,我也是,谢谢你的建议,回答编辑。我会尝试在我的答案上添加更多的解释,而不是继续快速地渴望得到一些分数。哈哈,谢谢你,你的回答太好了。。。这不是我的专业,所以我不知道这是否是一个好的解决方案。稍微解释一下为什么你的建议会奏效,这将大大有助于解决这个问题。别忘了,很多新手总是来Stack Overflow,我们可以从你那里学到一些东西。对你来说可能是显而易见的,但对这个领域的新手来说往往不是如此;)@塔林·伊斯特,我也是,谢谢你的建议,回答编辑。我将尝试在我的答案上添加更多的解释,而不是继续快速地渴望得到一些分数。哈哈,谢谢