我有JavaScript代碼生成下面的HTML查找和使用純JavaScript
<div class='rightbox'>
<div class'testBox'>
</div>
</div>
現在我有一個按鈕,按下應該刪除DIV衛生組織上課的時候是testbox
刪除特定元素。現在即使在這種情況下,testBox
並不總是rightbox
中的第一個孩子。
那麼我如何找到並刪除它?然後在rightbox
之後測試它是否作爲小孩出現?
我有JavaScript代碼生成下面的HTML查找和使用純JavaScript
<div class='rightbox'>
<div class'testBox'>
</div>
</div>
現在我有一個按鈕,按下應該刪除DIV衛生組織上課的時候是testbox
刪除特定元素。現在即使在這種情況下,testBox
並不總是rightbox
中的第一個孩子。
那麼我如何找到並刪除它?然後在rightbox
之後測試它是否作爲小孩出現?
使用例如querySelector()
來查找您的元素,然後使用parentNode
和removeChild()
的組合來刪除它。
var el = document.querySelector('.testBox');
el.parentNode.removeChild(el);
試試這個
$(".rightBox").find("div").eq(0).remove();
$(".rightBox").find("div.testBox").remove();
注:這是使用jQuery
var testBoxes = Array.prototype.slice.call(document.querySelectorAll('.testBox'));
testBoxes.forEach(function(testBox) {
testBox.parentNode.removeChild(testBox);
});
var els = document.getElementsByTagName("div");
var el;
for(var i = 0, ceiling = els.length; i < ceiling; i++) {
el = els[i];
if(el.className == "testbox") {
el.parentNode.removeChild(el);
break;
}
}
var presentAsChildWithinRightbox = false;
for(var i = 0, ceiling = els.length; i < ceiling; i++) {
el = els[i];
if(el.className == "rightbox") {
var childNodes = el.childNodes;
for(var j = 0, ceiling2 = childNodes.length; j < ceiling2; j++) {
if(childNodes[j].className == "testbox") {
presentAsChildWithinRightbox = true;
j = ceiling2;
i = ceiling;
}
}
}
}
if(presentAsChildWithinRightbox)
alert("A div with classname childbox has a child div with classname testbox");
else
alert("A div with classname childbox does not have a child div with classname testbox");
實現,但是這是可用的子節點? – Marc
@Marc你是什麼意思? – Sirko
這種方法是否會引入內存泄漏?由於dom元素在內存中未被銷燬,因此它只與父節點分離。 –