单击父级时获取子元素的id

时间:2012-04-22 16:13:00

标签: javascript jquery-ui jquery-selectors jquery

您好我看过类似的帖子,但没有人回答我想要完成的事情 我在这里做了一个样本 http://jsfiddle.net/edgardo400/R6rVJ/

我基本上想要的是当父母点击发生时你得到孩子的id 并将其存储在一个变量中,以便我可以将变量currentID传递给下面的代码,否则我将不得不为box1到box9的每个id复制此代码9次

 jQuery(currentID).delegate("a", "hover", function(event){

        var $img = jQuery(this).parent("li").find('img');
        var image = jQuery(this).attr('data-img');
         jQuery('.defaultimg').stop(true, true).fadeOut();
        if( event.type === 'mouseenter' ) {

            if($img.length){
                $img.show();

            }else{
                jQuery(this).parent("li").append('<img id="theImg" src="' + image + '" />');
            }

        }else{
            if($img){
              $img.hide();  
            }
             jQuery('.defaultimg').stop(true, true).fadeIn();
        }
    });
});

3 个答案:

答案 0 :(得分:7)

$('#boxes').on('click', function(e) {
    var currentID = e.target.id;
    console.log(currentID);

......rest of code

答案 1 :(得分:1)

如果您只希望使代码正常工作并在控制台上显示方框名称,则应该设置

jQuery('#boxes').bind('click', function(event) {

     var currentID = jQuery(event.srcElement).attr('id');

     /* rest of your code */
});

您可能想要做一些更容易的事情

jQuery('#boxes').children().bind('click', function() {

   jQuery(this).delegate... 

});

虽然我不确定你为什么要这样做......

已修复http://jsfiddle.net/nxTDA/

答案 2 :(得分:1)

在javascript中它将是:

var a = document.getElementById('#boxes');
a.onclick = function(e){
    console.log(e.target.id);
}