Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 - Fatal编程技术网

Javascript 获取选择器,而不是处理程序

Javascript 获取选择器,而不是处理程序,javascript,jquery,Javascript,Jquery,HTML: 如果我有多个带有关闭按钮的元素,我如何得到这样的父元素而不是按钮 因此,如果我在div1上单击.close,我需要使用div1作为它。由于该元素是要引用的元素的子元素,请使用父选择器 $('.close').on('click', '#div1, #div2', function(){ console.log ( $(this) ); // .close }); 大多数情况下,我们会在元素上使用一个类,并使用“最近”来选择它 $(this).parent().hide()

HTML:

如果我有多个带有关闭按钮的元素,我如何得到这样的父元素而不是按钮


因此,如果我在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
});