如何获取包装元素的id onclick?

时间:2013-05-20 18:45:11

标签: javascript jquery jquery-selectors

我想获取包装元素的ID onclick。像这样的东西

<p id="wrapper"> Hello <span id="one"> how </span> are <span id="two">you</span></p>

所以这是要求:

点击how我想获取包装span&amp;的ID这是one,当点击are时,它应显示包裹<p> ID,依此类推you

我正在使用jquery这个&amp;我和.prop.wrap一起玩,但每次我都会获得外<p>元素的ID。

所以请建议我该怎么做?

如果是重复的,请提供链接。

谢谢

7 个答案:

答案 0 :(得分:3)

您可以查看传递给点击功能的事件参数

$('#wrapper').click(function(e){
   console.log(e.target.id); 
});

FIDDLE

答案 1 :(得分:1)

这是非常简单的jQuery。

$('span').click(function() {
    console.log($(this).attr('id'));
});

这是一个小提琴:http://jsfiddle.net/zjysy/

答案 2 :(得分:1)

您可以轻松地将监听器附加到跨度:

var forEach = Function.call.bind([].forEach);
spans=document.querySelectorAll("p span");
forEach(spans, function(span){
    span.addEventListener("click", function(e){
        alert(e.target.id);
    });
});

http://jsfiddle.net/AMWqq/

答案 3 :(得分:0)

这样做你想要的:

$('#wrapper').click(function(e) {
    alert($(e.target).closest('[id]').prop('id'));
});

更新:点击此处:http://jsfiddle.net/zjysy/2/

答案 4 :(得分:0)

试试这个:http://jsfiddle.net/justincook/E6NFG/

$('p, span').on('click', function(){
   console.log($(this).attr('id'));
   return false;
});

答案 5 :(得分:0)

$(document).click(function(e){
alert(e.target.id);
});

答案 6 :(得分:0)

$(document).ready(function(){
    $('span, p').click(function(){
        alert($(this).attr('id'));
        return false;
    });
});