[英]How to check whether element contains another element by tag?
我有一個簡單的HTML:
<div class="1">
<div class="2">
<span>1</span>
</div>
<div class="3">
<span>2</span>
</div>
</div>
我需要遍歷所有div
並找到僅具有span
div
。 它必須是div.2
和div.3
。
所以,我需要修改if
條件:
var divArr = table.querySelectorAll("div");
for(var i = 0; i < divArr.length; i++){
if(divArr[i].querySelector("span")){
}
}
我想使用:has
(但我不想使用jQuery)或.contains
,但是我需要幫助。
關於什么:
let divs = [],
spans = document.body.querySelectorAll('div>span:only-child'),
i = 0, ii = spans.length;
for (i; i<ii; i++){
divs.push(spans[i].parentNode)
}
您可以使用SPAN
來檢查nodeName
屬性,如下所示:
var divArr = document.querySelectorAll("div"); for (var i = 0; i < divArr.length; i++) { if(divArr[i].children[0].nodeName == 'SPAN'){ console.log(divArr[i]); } }
<div class="1"> <div class="2"> <span>1</span> </div> <div class="3"> <span>2</span> </div> </div>
或:您可以將父節點定位為以下對象:
var divArr = document.querySelectorAll("div > span"); for(var i = 0; i < divArr.length; i++){ console.log(divArr[i].parentNode) }
<div class="1"> <div class="2"> <span>1</span> </div> <div class="3"> <span>2</span> </div> </div>
在玩代碼時,我得到了以下代碼片段:
spans = document.body.querySelectorAll('div > span'); for (var i = 0; i < spans.length; i++) { spans[i].parentNode.classList.add("highlight"); }
.highlight { background: yellow; }
<div class="1"> <div class="2"> <span>1</span> </div> <div class="3"> <span>2</span> </div> <div class="4"> 3 </div> <div class="5"> <span>4</span> <span>5</span> </div> </div>
我在HTML中添加了其他一些情況,
並在CSS中添加了highlight
以顯示JS的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.