使用jquery无法找到被点击元素的父元素的id

时间:2015-07-18 12:51:30

标签: javascript jquery html

我想获取执行id事件的事件元素的父级mousedown。我使用以下代码:

$(document).on("mousedown",function(e) {  
    var id1 = $(e.target).closest("div").attr('id');
    console.log(id1);
});

此输出始终为undefinded。我也尝试了这个:

$(document).on("mousedown",function(e) {  
    var id1 = $(e.target).closest("div");
    console.log(id1);
});

这是输出

[div.addmap, prevObject: x.fn.x.init[1], context: div.addmap]

如何获取父元素的id属性? addmap是父id的{​​{1}}。

4 个答案:

答案 0 :(得分:1)

您无法找到父级的原因是您已将事件侦听器绑定到文档本身。如果您以

的形式提供第二个参数
$(document).on('mousedown', 'img', function(e){...})

例如,您将事件侦听器绑定到所有<img>元素。然后单击图像将产生所需的结果。相反,如果'img'你也可以使用'img,p,span,div',如果指定了类型,它会将监听器绑定到所有元素。

如果您不想具体,您当然也可以使用'*'将其绑定到文档的所有元素。

答案 1 :(得分:0)

$(document).on("mousedown",function(e) {  
    var id1=$(e.target).parent().attr('id');
    console.log(id1);
});

答案 2 :(得分:0)

由于我假设为了在页面的任何地方注册点击并获得最接近的div而故意绑定到文档,以下应该可以解决问题:

我已经接受了Jaromanda X的观察,你似乎在寻找一个父类而不是id({limit: parseInt(Session.get('limit')}

JSFiddle:http://jsfiddle.net/j86rn2mh/1/

<强>的jQuery

context: div.addmap

<强> HTML

$(document).on("mousedown", function (e) {
var closestDiv = $(e.target).closest('div');
var closestDivClass = closestDiv.parent().attr('class');
console.log(closestDivClass);
});

<强> CSS

<div class='addMap'>
<div id='targetDiv'>CLICK ME</div>
</div>

答案 3 :(得分:0)

$(function(){
  $('#elm').click(function(){
    var parentElm = $(this).parent('tagname_or_class_or_id').attr('id');
  });
});

尝试这个,它应该工作:)