从事件中获取元素数组

时间:2010-05-23 16:55:43

标签: javascript jquery html javascript-events

我有几个嵌套的DIV元素。例如:

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

我使用jQuery将事件附加到DIVs事件处理程序:

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

用户点击内容时会有两个事件。所以会有两个同时发生的事件。是否有可能获得具有click事件的对象内部事件处理程序数组(DIV)?

可能有可能使用其他框架但是jQuery?

3 个答案:

答案 0 :(得分:1)

如果你真的想要一个可以获得click事件的div个对象数组,你可以这样做:

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

不确定这是否是您想要的,但array将包含一个div的数组链。

答案 1 :(得分:0)

如果这样做,那么当单击内部div时,外部处理程序将不会触发:

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

    return false;  
});

如果要获取所有被点击的div的数组,请使用:

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

    return false; //Prevent event bubbling 
});

答案 2 :(得分:0)

如果您的处理程序类似于以下问题:

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

你可以像这样得到div:

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