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

Jquery 为什么event.target选择下一个元素,jquery,Jquery,我有以下代码。在这里,当我单击一个a标记时,我只想获得此元素id。但是e.target选择下一个元素有人能解释吗 $(document).ready(function(){ function doaction(e) { var eve, id; eve = $(e.target); id = eve.attr('id'); alert(id); } $(".delete").click(functio

我有以下代码。在这里,当我单击一个
a
标记时,我只想获得
此元素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>
$(文档).ready(函数(){
函数doaction(e){
var-eve,id;
eve=$(e.target);
id=eve.attr('id');
警报(id);
}
$(“.delete”)。单击(函数(e){
作用(e);
});
});
演示


您的JSFIDLE链接工作正常。只是解释一下,单击事件在
div
上,而不是在
a
上。因此,如果你点击
a
,你会得到该ID,但是如果你点击
div
内部,而不是
a
,你会得到
div
ID,而不是
a
ID。因为
a
div
内部,点击它会触发事件。

你的jsFiddle链接工作正常。只是解释一下,单击事件在
div
上,而不是在
a
上。因此,如果您单击
a
,您将获得该ID,但是如果您在
div
内单击,而不是在
a
上单击,您将获得
div
ID,而不是
a
ID。因为
a
位于
div
内,单击该按钮将触发事件。

e.target
为您提供所单击的实际元素


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

e.target
提供单击的实际元素

要获取为其注册处理程序的元素,请在执行此操作时使用
this

:$(“.delete”)。单击(函数(e){

您将获得一个名为“delete”的类的DIV的click事件

如果您不想点击某个标记,则必须在标记上添加“delete”类,并制作以下代码示例:

$(.delete”)。执行此操作时,请单击(function(){//Code here})

:$(.delete”)。单击(function(e){

您将获得一个名为“delete”的类的DIV的click事件

如果您不想点击某个标记,则必须在标记上添加“delete”类,并制作以下代码示例:


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

这对我来说没问题。但是,如果您有一些问题,您可能需要修复代码中的ID。ID属性的值必须以a-Z或a-Z范围内的字母开头,后面可能是字母(a-Za-Z)、数字(0-9)、连字符(“-”、下划线(“)、冒号(:”)“,”和句点(“.”)。

这对我来说没问题。但是,如果您遇到一些问题,您可能需要修复代码中的ID。
ID
属性的值必须以a-Z或a-Z范围内的字母开头,后面可能跟有字母(a-Za-Z)、数字(0-9)、连字符(“-”)、下划线(“)、冒号(:”)和句点(“.”.

试试这个

$(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

希望这有帮助

试试这个

$(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

希望这有帮助


你的第一个
a
标签有两个id,
delete/1
del/one
。你看到我的答案了吗?你的第一个
a
标签有两个id,
delete/1
del/one
。你看到我的答案了吗?我想要div id=“del/one”但如果你只需要使用哪个id就不会发生这种情况:var myID=$(e.target).attr(“ID”);我想要div ID=“del/one”,但如果您只需要执行以下操作,则不会发生这种情况:var myID=$(e.target).attr(“ID”);它没有给我div id,这是我的问题为什么?@gow:因为你点击了
,而不是
。它没有给我div id,这是我的问题为什么?@gow:因为你点击了
,而不是
。我正在为div触发click事件,对吧…那么它如何给标记id呢?我需要divid@gowri:使用
$(此).attr('id')
在单击处理程序中,以获取
div
id。我正在为div启动click事件……然后它如何给出标记id。我需要divid@gowri:在单击处理程序中使用
$(this).attr('id')
,以获取
div
id。