好的,我说我有很多div.一些div,孩子们有一个班级,其他孩子们有不同的班级.
我想只隐藏有一个特定类的孩子的div.
例如,
- <div class="mainDiv">
- <div class="kulkul">
- <div class="childA">
- </div>
- </div>
- </div>
- <div class="mainDiv">
- <div class="lalala">
- <div class="childB">
- </div>
- </div>
- </div>
- <div class="mainDiv">
- <div class="kulkul">
- <div class="childA">
- </div>
- </div>
- </div>
- <div class="mainDiv">
- <div class="lalala">
- <div class="childA">
- </div>
- </div>
- </div>
- <div class="mainDiv">
- <div class="kulkul">
- <div class="childB">
- </div>
- </div>
- </div>
- <div class="mainDiv">
- <div class="lalala">
- <div class="childA">
- </div>
- </div>
- </div>
现在上面,假设我只想隐藏具有类.childB的子div的父div
据我所知(CSS3无论如何),这不能用CSS完成,因为CSS不允许你设置父div的样式,只允许子div.父母.mainDiv divs(我想隐藏的那些)都完全一样.
这样就留下了javascript.
使用上面的示例,如何隐藏包含带有.childB类的子div的所有.mainDiv div?
解决方法
根据其直系后裔隐藏父母元素
- //Update the **sample-element-to-hide** with whatever you wanted to use as a child class with the parent element you wanted to hide e.g.,'childB'
- var elementToHideList = document.getElementsByClassName("sample-element-to-hide");
- for (var i = elementToHideList.length; i--;)
- elementToHideList[i].parentNode.style.display = "none";
根据子元素隐藏父母元素.
- //Solution for the OP
- //Update the **childB** with whatever you wanted to use as a child class with the parent element you wanted to hide.
- //Note that this would only works if the parent element has a **className** mainDiv. You can change mainDiv with your own parent className.
- $('.classB').closest('.mainDiv').hide();