<分区>
我有这个
<div class="out">
out asdaasd
<div class="in"> in </div>
out
</div>
并想做到这一点
<div class="out"> out asdaasd <div>
<div class="in"> in </div>
<div class="out"> out </div>
将任意文本从里到外,如何检测内部 div 的位置并获得我需要的内容?
标签 javascript jquery html
<分区>
我有这个
<div class="out">
out asdaasd
<div class="in"> in </div>
out
</div>
并想做到这一点
<div class="out"> out asdaasd <div>
<div class="in"> in </div>
<div class="out"> out </div>
将任意文本从里到外,如何检测内部 div 的位置并获得我需要的内容?
最佳答案
var outers = document.getElementsByClassName("out");
[].forEach.call(outers, function(outer) {
var inner = outer.getElementsByClassName("in")[0];
var children = outer.childNodes;
var flag = true;
var before = document.createElement("div");
var after = document.createElement("div");
before.classList.add("out");
after.classList.add("out");
[].slice.call(children).forEach(function(node) {
if (node == inner) {
return flag = false;
}
if (flag) {
before.appendChild(node);
} else {
after.appendChild(node);
}
});
var frag = document.createDocumentFragment();
frag.appendChild(before);
frag.appendChild(inner);
frag.appendChild(after);
outer.parentNode.replaceChild(frag, outer);
});
关于javascript - div 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082824/