Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从事件获取元素数组_Javascript_Jquery_Html_Javascript Events - Fatal编程技术网

Javascript 从事件获取元素数组

Javascript 从事件获取元素数组,javascript,jquery,html,javascript-events,Javascript,Jquery,Html,Javascript Events,我有几个嵌套的DIV元素。例如: <div id='id1'><div id='id2'>content</div></div> 当用户单击内容时,将有两个事件。因此将有两个同时发生的事件。是否有可能在事件处理程序对象数组(div)中获取单击事件的内容 是否可以使用除jQuery之外的其他框架?如果您这样做,那么当单击内部div时,外部处理程序将不会启动: $('div').click(function () { //some code

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

<div id='id1'><div id='id2'>content</div></div>
当用户单击内容时,将有两个事件。因此将有两个同时发生的事件。是否有可能在事件处理程序对象数组(div)中获取单击事件的内容


是否可以使用除jQuery之外的其他框架?

如果您这样做,那么当单击内部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 
});

如果你喜欢这个问题:

$('div').click(function () {
    //some code   
});
你可以像这样把div放进去:

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

如果您确实想要一个
div
对象数组来获取单击事件,您可以执行以下操作:

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

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

您的问题有点模糊。您是否询问如何获取DOM中所有附加了click事件处理程序的元素的列表?请澄清您的问题。是否仅将事件处理程序附加到最里面的div,或查找所有附加了单击处理程序的div?因此,是否要获取其子级被单击的所有div的数组?当用户单击内部div元素时,会触发两个事件(单击第一个div的事件,单击第二个div的事件)。在这种情况下,我想得到一个数组[DIV1,DIV2]。@Anton-我的答案给出了你想要的数组,尽管我使用了
e.stopPropagation()
,所以它只对最里面的
div
有效。如果需要,可以删除该行。
$('div').click(function(e) {
    var array = $(e.target).parents('div').andSelf().get();
    alert(array);
    e.stopPropagation();;
});