在使用e.target之后,如何获取整个(父)元素而不仅仅是特定的子元素

时间:2015-06-29 23:33:12

标签: javascript jquery html events

在下面的代码中,我想定位li以查看是否点击了li。目前,当我点击li的文本时,e.target是跨度,这是li的子项,所以就像我没有点击li(我猜e。目标非常具体)。 li位于下拉菜单中,因此我使用e.target来获取用户想要的选项。如果用户选择具有类1设置全局变量的li。如果用户选择具有2类的li设置diff全局变量。什么是针对整个李的最佳方式?

 $(document).ready( function(){
        var clicked = ["subtraction"]
        $(".add-section").on("click", function(e){
            console.log(e.target)
            clicked = []
            clicked[0] = "addition"
            $("#gameArea").html(clicked[0])
            if(!$(".add-section ul").is(":visible")){
                $(".add-section ul").css("display" , "block")
            }else{
                $(".add-section ul").slideUp("fast")
            }
            if($(e.target).hasClass("one")){
                alert("one")
            }
        })
    });

HTML:

<div class="add-section">
    <span>add</span>
    <ul>
        <li class="one"><span class = "left" id = "add2">Add 2 items</span> <span class= "right">2d</span></li>
        <li class= "two"><span class = "left" id="add3">Add 3 items</span> <span class= "right">2d</span></li>
    </ul>
</div>

2 个答案:

答案 0 :(得分:1)

您正在寻找Ray

答案 1 :(得分:1)

取代:

e.target.parentNode

使用:

$(e.target).hasClass("one")

.is() | jQuery API Documentation
.closest() | jQuery API Documentation