Javascript 获取选择器,而不是处理程序
HTML: 如果我有多个带有关闭按钮的元素,我如何得到这样的父元素而不是按钮Javascript 获取选择器,而不是处理程序,javascript,jquery,Javascript,Jquery,HTML: 如果我有多个带有关闭按钮的元素,我如何得到这样的父元素而不是按钮 因此,如果我在div1上单击.close,我需要使用div1作为它。由于该元素是要引用的元素的子元素,请使用父选择器 $('.close').on('click', '#div1, #div2', function(){ console.log ( $(this) ); // .close }); 大多数情况下,我们会在元素上使用一个类,并使用“最近”来选择它 $(this).parent().hide()
因此,如果我在div1上单击.close,我需要使用div1作为它。由于该元素是要引用的元素的子元素,请使用父选择器
$('.close').on('click', '#div1, #div2', function(){
console.log ( $(this) ); // .close
});
大多数情况下,我们会在元素上使用一个类,并使用“最近”来选择它
$(this).parent().hide()
$'.close'。单击,函数{
$this.closest.msg.hide;
};
味精{
.边框:1px纯黑
}
关
测试1
关
测试2
出于本能,我会考虑,将选择器作为参数:
$(this).closest('.msg').hide()
.closest将返回表示与选择器匹配的第一个节点的jQuery对象。它从当前对象开始,一直到.parent,直到找到匹配项为止实际上不需要任何选择器,只需要.closestdiv。 如果您想更具体一点,比如最近的ID以div开头,而不是像这样: $'.close'。单击,函数{ $this.closest[id^='div'].fadeOut; }; 关闭1 关闭2
console.log$this.parent.attr'id';向上走DOM树。您不是在$'.close'中进行事件委派吗?单击,'.div1,div2',函数{方向错误?通常类似于$'div1,div2'。单击,'.close',函数{,对吗?如果你这样做,我想你会有这样的家长。我可能遗漏了一些东西…@myfunkyside你是对的。我已经在我的回答中提到过了,除了我的最后一行,那不是真的。不能再编辑它了。这段代码不能与OP的HTML一起工作。我不知道他为什么要标记它?如果你测试过,那么请添加一个工作链接或代码片段以消除歧义,因为我根据OP的html检查了上述代码,但它不工作
$(this).closest('.msg').hide()
var selector = '#div1, #div2';
$('.close').on('click', selector, function(){
console.log ( $(this).closest(selector) ); // .close
});