为什么event.target选择下一个元素

时间:2011-03-28 13:34:13

标签: jquery

我有以下代码。这里当我点击一个a标签我只想获得this element id。但e.target选择下一个元素可以解释一下

 $(document).ready(function(){
    function doaction(e) {

       var eve, id;

        eve = $(e.target);
        id = eve.attr('id');
        alert(id);

    }

    $(".delete").click(function(e) {
        doaction(e);
    });


    });



<div class="delete" id="del/one"><a href="javascript:void(0);" id="delete/1" >one</a></div>

<div class="delete" id="del/two"><a href="javascript:void(0);" id="delete/2">two</a></div>

<div class="delete" id="del/three"><a href="javascript:void(0);" id="delete/3" >three</a></div>

for demo

http://jsfiddle.net/gchoken/SGvUd/4/

5 个答案:

答案 0 :(得分:2)

您的jsFiddle链接正常。只是为了解释,点击事件位于div,而不是a。因此,如果您点击a,您将获得该ID,但如果您点击div内部,而不是a,则会获得{{1} ID,而不是div ID。由于a位于a内,因此点击它会触发事件。

答案 1 :(得分:2)

e.target为您提供了点击的实际元素。

要获取您为其注册处理程序的元素,请使用this

答案 2 :(得分:0)

当你这样做时:$(“。delete”)。点击(function(e){

你正在获取DIV的点击事件,其中一个类被命名为“删除”

如果您想要点击A标签,则必须将“删除”类放在标签上并生成以下代码示例:

$(“a.delete”)。click(function(){// Code here})

答案 3 :(得分:0)

它适用于我。但是,如果您遇到一些问题,可能需要在代码中修复ID。 ID属性的值必须以AZ或az范围内的字母开头,后跟字母(A-Za-z),数字(0-9),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。

答案 4 :(得分:0)

尝试这个...

$(document).ready(function(){
function doaction(e) {

   var eve, id;

    eve = $(e.target.parentNode);
    id = eve.attr('id');
    alert(id );

}

$(".delete").click(function(e) {
    doaction(e);
});


});

e.target为你提供了被点击的实际元素,而div是该元素的父元素,所以......使用e.target.parentNode获取div id ..

希望这会有所帮助..

Working Demo