[英]Wrapping an element inside the innerHTML of another
我有
<div class="blue"><a href="#">link</a></div>
我想做
<div class="blue"><span class="orange"><a href="#">link</a></span></div>
如何在.blue
的內容中包含.blue
?
var blue = document.querySelector('.blue');
var orange = document.createElement('span');
orange.classList.add('orange');
我最近來的是blue.appendChild(orange);
但這會將橙色置於藍色的底部。
var blue = document.querySelector('.blue'); var orange = document.createElement('span'); orange.classList.add('orange'); while (blue.childNodes.length > 0) { orange.appendChild(blue.childNodes[0]); } blue.appendChild(orange);
div {background:blue} a {background:red} span {background:orange} div,a,span {display:block;padding:10px;}
<div class="blue"> <a href="#">link</a><!-- extra spaces ^^^ or comments count as nodes, that is why "while" is a safe option even when in a simple html you think that you have a single node. --></div> <br><br><br><br> What I'm trying to do: <div><span><a href="#">link</a></span></div>
嘗試使用insertBefore而不是appendChild來插入藍色中的第一個位置。
var blue = document.querySelector('.blue');
blue.insertBefore(orange, blue.firstChild);
同樣,將其添加到您需要的任何位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.