2010-05-23 114 views
0

我有几个嵌套的DIV元素。例如:从事件中获取元素数组

<div id='id1'><div id='id2'>content</div></div> 

我使用jQuery附上事件的DIV事件处理程序:

$('div').click(function() { 
    //some code 
}); 

将有内容在用户点击两个事件。所以会有两个同时发生的事件。是否有可能进入事件处理程序数组对象(DIV)什么有点击事件?

可能有可能使用其他框架,但jQuery的?如果你想获得被点击的所有div的数组

$('div').click(function() { 
    //some code 

    return false; 
}); 

,使用此:

+0

你的问题有点含糊。你在问如何得到DOM中所有包含click事件处理程序的元素的列表? – 2010-05-23 17:00:58

+0

请澄清你的问题。你想仅将事件处理程序附加到最里面的div上,还是要查找附加了点击处理程序的所有div? – Anurag 2010-05-23 17:02:27

+0

所以你想获得一个所有的孩子被点击的div的数组? – Eric 2010-05-23 17:11:20

回答

1

如果你从字面上希望div对象将获得click事件的数组,你可以这样做:

$('div').click(function(e) { 
    var array = $(e.target).parents('div').andSelf().get(); 
    alert(array); 
    e.stopPropagation();; 
}); 

不知道这是你想要的,但array将包含数组div上链。

0

如果你这样做,那么外处理程序将不会触发点击内部的div时

$('div').click(function() { 
    //some code 
    var divs = $(this).parents('div'); //Gets all the divs which are ancestors 

    return false; //Prevent event bubbling 
}); 
0

如果处理程序是一样的问题:

$('div').click(function() { 
    //some code 
}); 

你可以得到的div里面是这样的:

$('div').click(function() { 
    $(this).find("div") //do something 
});