Удаление тега из DOM
Ребята, подскажите как удалить все теги, например <strong> и </strong> в нужном мне DOM?
|
|
Как-то наподобие этого.
<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> |
Если с помощью jQuery (раз уж топик находится тут), то можно так:
$('strong').each(function() { $(this).replaceWith(document.createTextNode($(this).html())); }); |
Цитата:
$('strong').each(function(){ $(this).children().first().unwrap(); }); |
Согласен, так лучше, тем более что чистый jQuery. А я unwrap как-то упустил из виду. Наверное потому, что пользоваться не приходилось.
|
Тьфу! Так это ветка jQuery. :-?
|
Цитата:
Цитата:
|
Спасибо!
$('strong').each(function(){ $(this).children().first().unwrap(); }); А вот эта конструкция не работает. |
Кстати, вопросик почти по теме: если текст большой, тегов много и разных, не будет ли быстрее взять innerHTML и его просеять регэкспом?
|
Часовой пояс GMT +3, время: 12:09. |