2016-01-10 2 views
-4

у меня есть что-то вроде этого генерируется JQuery:Как я могу вставить тег в другой тег?

<p id="foo1">content</p>

, как я могу получить это с помощью JavaScript?

<pre><p id="foo1">content</p></pre>

+0

Я думаю, что это хороший вопрос, пока вы не можете найти doublicate, нет никаких причин, чтобы закрыть его. – CoderPi

+1

Возможный дубликат [jQuery - Wrap div для определенного элемента] (http://stackoverflow.com/questions/4365053/jquery-wrap-div-to-a-specific-element) – Phiter

+0

Первая часть создается jquery, у него есть jquery – Phiter

ответ

0

вы можете использовать HTML DOM AppendChild() метод. Используется для добавления узла в качестве последнего дочернего узла.

0

Использование JavaScript:

function wrap(elTarget, elWrapper) { 
 
    elTarget.parentNode.insertBefore(elWrapper, elTarget); 
 
    elWrapper.appendChild(elTarget); 
 
} 
 

 
wrap(document.getElementById("foo1"), document.createElement("pre"))
<p id="foo1">content</p>


Использование JQuery-х wrap:

$("#foo1").wrap("<pre></pre>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p id="foo1">content</p>

4

Попросту Javascript, вы можете создать новый тег, вставьте его до вашего существующего содержимого, а затем переместить содержимое внутри нового тега:

var pre = document.createElement("pre"); 
var content = document.getElementById("foo1") 
content.parentNode.insertBefore(pre, content); 
pre.appendChild(content); 

Поскольку вы упоминаете JQuery в тексте Вашего вопроса , вы также можете использовать jQuery's .wrap(), чтобы сделать то же самое.

$("#foo1").wrap("<pre>"); 
+0

приятный и легкий, молодец! – CoderPi

+0

@ j-doe - Это ответ на ваш вопрос? – jfriend00

0

Пользователь .wrap() click

$(document).ready(function() { 
 
    $("button#submit").click(function() { 
 
    $("p#foo1").wrap("<pre></pre>"); 
 
    }); 
 
});
<script src="http://code.jquery.com/jquery-latest.js"></script> 
 

 
<p id="foo1">content</p> 
 
<button id="submit">Insert tag</button>