如果“slick-initialized”div标签在父节点中不存在,那么我希望父节点ID(product recommender-recipe)显示none。
HTML是这样设置的:
<div id="product-recommender-recipe">
<div class="slick-initialized">
</div>
</div>
到目前为止我的JS。如果长度为0,则使父ID显示为无。
var productTemplate = document.getElementsByClassName("#product-recommender-recipe > .slick-initialized")
if (productTemplate.length === 0){
document.getElementById("product-recommender-recipe").style.display = "none";
}
我把这个设置好了吗?
3条答案
按热度按时间lnvxswe21#
你已经很接近了,在你的实现中有两个错误,第一个错误是你使用了
getElementByClassName
,而实际上你使用的是一个ID作为你的选择器,因此你应该使用querySelector
。第二个问题是你过度使用了你的选择器,你已经选择了你的父div并把它放在一个var中,这样你就可以再次引用它了。
下面是我的实现:
pkbketx92#
getElementsByClassName
需要一个类名,而不是选择器。如果要使用选择器,请使用querySelector
或querySelectorAll
。如果DOM中不存在该元素,则querySelector
返回null
。pprl5pva3#
您可以隐藏
#product-recommender-recipe
,并检查.slick-initialized exists
是否比只使用CSS显示。它工作得很好。