假設我有一個div,如下所示:
<div id="mainDIV">Area to remove <p>Area to not remove</p></div>
我想洗掉 div 的 content/innerHTML 直到p標簽。我嘗試通過以下方式將其洗掉:
document.getElementById("mainDiv").innerHTML = ""
雖然這洗掉了我想要洗掉的區域,但它也洗掉了p元素及其內容。
有沒有辦法做到這一點?謝謝!
uj5u.com熱心網友回復:
假設要洗掉的東西始終是第一個文本節點,您可以洗掉第一個子節點。
const mainDiv = document.querySelector('#mainDIV');
mainDiv.removeChild(mainDiv.firstChild);
<div id="mainDIV">Area to remove <p>Area to not remove</p></div>
但也要注意你的拼寫。mainDiv不是mainDIV。
uj5u.com熱心網友回復:
可以獲取<p>的內容,然后插入到#mainDIV的內部HTML中,如:
document.getElementById('mainDIV').innerHTML = document.getElementById('mainDIV').querySelector('p').outerHTML;
uj5u.com熱心網友回復:
您可以使用“拆分”功能,例如:
var your_div = document.getElementById("mainDiv");
//splits the innerHTML of the div at "<p>" and selects the inside p side
var just_the_p = your_div.innerHTML.split("<p>")[1];
your_div.innerHTML = "<p>" just_the_p;
你 div 的 innerHTML 現在是“不洗掉的區域”(加上 p 標簽)
另請注意,拆分將洗掉 p 標簽的開頭,因此稍后將其添加
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/452205.html
標籤:javascript html dom
上一篇:隨機播放容器的DOM元素,但不是全部在javascript中
下一篇:瀏覽器正在決議錯誤的HTML內容
