Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2010, 15:22
Аватар для doniv
Аспирант
Отправить личное сообщение для doniv Посмотреть профиль Найти все сообщения от doniv
 
Регистрация: 02.03.2010
Сообщений: 73

Удаление тега из DOM
Ребята, подскажите как удалить все теги, например <strong> и </strong> в нужном мне DOM?
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2010, 15:26
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

http://javascript.ru/tutorial/dom/mo...lenie-uzla-dom
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2010, 15:37
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 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>
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2010, 15:40
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Если с помощью jQuery (раз уж топик находится тут), то можно так:
$('strong').each(function() {
	$(this).replaceWith(document.createTextNode($(this).html()));
});
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2010, 15:44
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от SkyLight Посмотреть сообщение
Если с помощью jQuery (раз уж топик находится тут), то можно так:
$('strong').each(function() {
	$(this).replaceWith(document.createTextNode($(this).html()));
});
$('strong').each(function(){
 $(this).children().first().unwrap();
});
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #6 (permalink)  
Старый 25.03.2010, 15:47
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Согласен, так лучше, тем более что чистый jQuery. А я unwrap как-то упустил из виду. Наверное потому, что пользоваться не приходилось.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #7 (permalink)  
Старый 25.03.2010, 16:07
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Тьфу! Так это ветка jQuery.
Ответить с цитированием
  #8 (permalink)  
Старый 25.03.2010, 16:10
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от SkyLight Посмотреть сообщение
Согласен, так лучше, тем более что чистый jQuery. А я unwrap как-то упустил из виду. Наверное потому, что пользоваться не приходилось.
Мне тоже не приходилось, просто запомнилось

Сообщение от subzey Посмотреть сообщение
Тьфу! Так это ветка jQuery.
Подумаешь, хороший ответ нигде не лишний
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #9 (permalink)  
Старый 25.03.2010, 18:51
Аватар для doniv
Аспирант
Отправить личное сообщение для doniv Посмотреть профиль Найти все сообщения от doniv
 
Регистрация: 02.03.2010
Сообщений: 73

Спасибо!

$('strong').each(function(){
 $(this).children().first().unwrap();
});

А вот эта конструкция не работает.

Последний раз редактировалось doniv, 25.03.2010 в 18:55.
Ответить с цитированием
  #10 (permalink)  
Старый 25.03.2010, 23:11
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Кстати, вопросик почти по теме: если текст большой, тегов много и разных, не будет ли быстрее взять innerHTML и его просеять регэкспом?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
Вопрос о циклических ссылках (JavaScript -> Dom -> JavaScipt) BlueIce Events/DOM/Window 10 17.02.2010 21:58
удаление DOM элемента и перезагрузка страницы Andrey2005 Общие вопросы Javascript 3 12.10.2009 23:49
Сохранение дерева DOM в файл Александр1985 Общие вопросы Javascript 7 24.01.2009 23:15
Изменение параметра "ALT"("TITLE") тега IMG посредством DOM Гость Элементы интерфейса 3 21.02.2008 10:02