Мне нужно выяснить, есть ли другие элементы <div>
или <iframe>
в моем текущем <div>
, и отделить их от других данных. Например, мне нужно передать HTML из этого:
<div class="main">
<p>Some text<p>
<iframe src="test.com"/>
<p>Other text<p>
</div>
в этот
<div class="main">
<p>Some text<p>
</div>
<iframe src="test.com"/>
<div class="main">
<p>Other text<p>
</div>
Кроме того, элемент, который необходимо удалить из <div>
, может быть конец, поэтому достаточно будет переместить закрывающий тег </div>
перед ним, а не после него.
UPD: почти решил проблему, но осталась одна проблема - как встроить ТОЛЬКО открывающуюся или закрывающий тег перед или в конце элемента?
const splitter = function(element){
let newObj = document.createElement("div");
newObj.innerHTML = element.innerHTML;
[...newObj.querySelectorAll("div.typo")].forEach(ele => {
if(ele.querySelectorAll("div.incut").length != 0){
ele.querySelectorAll("div.incut").forEach(eles => {
eles.before('</div>') //here
eles.after('<div class="typo">') //and here
})
}
})
console.log(newObj)
};
console:
<div class="typo">
<p>Some text</p>
"</div>"<div class="incut"> Incut text</div>"<div class="typo">"
<p>Other text</p>
</div>