我有一系列带有“addedelement”类的 div,它们是动态添加的。 在所有这些层中,有更多嵌套的 div,其中一个包含一些带有附加事件的图像。当我单击其中一张图像时,我想知道它是否位于这些 div 的最后一个内:
if($(this).is('div.addedelement:last div.contextmenu img.up'))
{
alert('Ok');
}
我不知道为什么,但是这个条件表达式的触发与触发器是否位于最后一个“elementadded”div 内的情况无关。但是如果我尝试将 css 应用于这样的元素:
$('div.addedelement:last div.contextmenu img.up').css('display','none');
它就像一个魅力。 我缺少什么? 有人可以帮助我吗?
最佳答案
一种选择是使用 jQuery index
方法,您可以选择类 .addedelement
的图像的最近父级并将元素传递给 index
方法,如果缓存的 jQuery 对象的长度(-1)等于 jQuery 集合中父元素的索引,则该元素是最后一个。
// define these variables outside of the event handler
var $a = $('div.addedelement'), len = $a.length - 1;
// within your event handler
var cur = $(this).closest('div.addedelement').get(0);
if ( $a.index(cur) === len ) {
// last
}
但是。如果您只想为最后一个 div 元素中的图像注册一个处理程序,其类为 addedelement
,您可以编写:
$('div.addedelement').last().find('img.up').click(function(){
// last
})
关于jquery - 确定单击的元素是否在特定 div 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14073620/