|
25.03.2010, 15:22
|
|
Аспирант
|
|
Регистрация: 02.03.2010
Сообщений: 73
|
|
Удаление тега из DOM
Ребята, подскажите как удалить все теги, например <strong> и </strong> в нужном мне DOM?
|
|
25.03.2010, 15:26
|
|
:-/
|
|
Регистрация: 28.09.2009
Сообщений: 1,126
|
|
|
|
25.03.2010, 15:37
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Как-то наподобие этого.
<h1>Продажа яваскрипта оптом.</h1>
<p>Наша компания занимает оптовыми <strong>поставками яваскрипта</strong> в отдаленные горные аулы.</p>
<p>Наш <strong>яваскрипт</strong> — самый <strong>качественный яваскрипт</strong> на рынке <strong>яваскрипта</strong>!</p>
<script>
var strongs = document.getElementsByTagName("strong"); /* находим все стронги */
for (var i=strongs.length - 1; i>=0; i--){ /* для каждого из них, начиная с конца */
var strong = strongs[i];
var acceptor = strong.parentNode;
while(strong.childNodes.length){ /* пока дочерние элементы не кончатся */
var child = strong.childNodes[0]; /* первый дочерний элемент */
strong.removeChild(child); /* выдергиваем */
acceptor.insertBefore(child, strong); /* и вставляем прямо перед стронгом */
};
acceptor.removeChild(strong); /* а потом прибиваем стронг */
};
</script>
|
|
25.03.2010, 15:40
|
|
Злюка-бобер
|
|
Регистрация: 21.03.2010
Сообщений: 438
|
|
Если с помощью jQuery (раз уж топик находится тут), то можно так:
$('strong').each(function() {
$(this).replaceWith(document.createTextNode($(this).html()));
});
__________________
In WEB We Trust
У всех есть своя темная сторона...
|
|
25.03.2010, 15:44
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
Сообщение от SkyLight
|
Если с помощью jQuery (раз уж топик находится тут), то можно так:
$('strong').each(function() {
$(this).replaceWith(document.createTextNode($(this).html()));
});
|
$('strong').each(function(){
$(this).children().first().unwrap();
});
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
25.03.2010, 15:47
|
|
Злюка-бобер
|
|
Регистрация: 21.03.2010
Сообщений: 438
|
|
Согласен, так лучше, тем более что чистый jQuery. А я unwrap как-то упустил из виду. Наверное потому, что пользоваться не приходилось.
__________________
In WEB We Trust
У всех есть своя темная сторона...
|
|
25.03.2010, 16:07
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Тьфу! Так это ветка jQuery.
|
|
25.03.2010, 16:10
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
25.03.2010, 18:51
|
|
Аспирант
|
|
Регистрация: 02.03.2010
Сообщений: 73
|
|
Спасибо!
$('strong').each(function(){
$(this).children().first().unwrap();
});
А вот эта конструкция не работает.
Последний раз редактировалось doniv, 25.03.2010 в 18:55.
|
|
25.03.2010, 23:11
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,587
|
|
Кстати, вопросик почти по теме: если текст большой, тегов много и разных, не будет ли быстрее взять innerHTML и его просеять регэкспом?
|
|
|
|