Javascript 从事件获取元素数组
我有几个嵌套的DIV元素。例如: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 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();;
});