【发布时间】:2017-10-04 11:54:24
【问题描述】:
有四个具有相同类的父 div,并且它们都有一个具有“child”类的子级。现在的问题是,假设我点击了第一个父 div 的子 div(第一个子),我想对它的父级产生一些影响,即只影响“第一个父级”。由于是相似的类,所有父 div 都会受到影响。 这是 HTML
<div class="parent"> //First Parent
<div class="child"></div> //First Child
</div>
<div class="parent">
<div class="child"></div>
</div>
<div class="parent">
<div class="child"></div>
</div>
<div class="parent">
<div class="child"></div>
</div>
这是 JQuery
$('.child').on('click',function(){
$(this).parent('.parent').css({
'display':'none';
});
});
单击子元素将影响所有具有“父”类的父 div。我可以给它们所有单独的类,然后为它们编写 onClick() 方法,但这不是一个合适的解决方案。
【问题讨论】:
-
使用您的示例中的代码,只有被点击元素的父元素会受到影响。
.parent('.parent')将返回该类的第一个父级。看看documentation! -
parent() 正在工作,最近的() 也是如此,但所有父 div 都具有相同的类,并且我正在将 onClick 添加到具有“child”类的子元素中。仍然无法实现所需的功能。
-
在 onClick 回调中
this指的是被点击的元素而不是所有的.child元素,这意味着.parent(".parent")将只返回被点击元素的父元素。 -
是的,你是对的,但还有一点需要注意的是每个子 div 都有 .child 类,所以这个 onClick() 将应用于每个子 div。
-
即使应用于多个元素,
this仍然会引用被点击的元素。$(this) != $(".child"),$(this) == ClickedElement.
标签: javascript jquery html css