簡體   English   中英

在另一個的innerHTML內部包裝一個元素

[英]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); 但這會將橙色置於藍色的底部。

http://jsbin.com/zuxibakihi/edit?html,css,js,output

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM