[英]Remove inner html tags without inner content Javascript
删除没有内部内容Javascript的内部html标签。 我有类似的HTML结构,具有未定义的div计数:
<div>
<div>
<div>
<div>~Content 1~</div>
</div>
</div>
</div>
如何删除所有div标签,结果必须是:
<div>~Content 1~</div>
尝试
$("div").first().each( function(){ $(this).html( $(this).text() ) });
首先进行div,然后将其innerHTML
替换为innerText
演示版
$("div").first().each(function() { $(this).html($(this).text()) });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <div> <div> <div>~Content 1~</div> </div> </div> </div>
您可以在内容上检查元素,以检查是否仅剩余一个div。
您可以使用unwrap()
获取最后一个子div,删除父div,然后将该div附加到body
。
var div = $('div:not(:has(div))').unwrap() $('div').remove(); $('body').append(div)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <div> <div> <div>~Content 1~</div> </div> </div> </div>
在Vanilla中,使用document.querySelectorAll
var divs = document.querySelectorAll("div"); //just check all divs, if the length of children is 0. there are no more descendants. Array.prototype.forEach.call(divs, function(element){ if (element.querySelectorAll("div").length == 0) { //only for demo purposes. the element found is the last descendant. document.querySelector(".result").textContent += element.outerHTML; } });
<div> <div> <div> <div>~Content 1~</div> <div>~Content 2~</div> <div>~Content 3~</div> </div> </div> </div> <pre class="result"></pre>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.