Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как удалить тег не удаляя его содержимое? (https://javascript.ru/forum/jquery/47273-kak-udalit-teg-ne-udalyaya-ego-soderzhimoe.html)

Hurray 16.05.2014 20:23

Как удалить тег не удаляя его содержимое?
 
Исходный код:
<form>
	<font class="tablebodytext">
		<p>текст</p>
		<input type="submit" value="Оплатить" name="BuyButton">
	</font>
<form>

Нужно получить:
<form>
	<p>текст</p>
	<input type="submit" value="Оплатить" name="BuyButton">
<form>

,то есть удалить только тег <font>, чтобы его внутренности остались.

рони 16.05.2014 20:35

Hurray,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function ()
{
    $(".tablebodytext >").unwrap()
    alert($('body').html())
})
  </script>
</head>

<body>
<form>
	<font class="tablebodytext">
		<p>текст</p>
		<input type="submit" value="Оплатить" name="BuyButton">
	</font>
</form>


</body>

</html>

Vlasenko Fedor 16.05.2014 23:18

<form>
  <font class="tablebodytext">
    <p>текст</p>
    <input type="submit" value="Оплатить" name="BuyButton">
  </font>
</form>
<script>
  window.onload = function () {
    var allfont = document.querySelectorAll("font.tablebodytext");
    var len = allfont.length;
    var el = null;
    if (len) {
      while (len--) {
        el = allfont[len];
        el.outerHTML = el.innerHTML;
      }
    }
  }
</script>

nerv_ 17.05.2014 01:41

вариант http://learn.javascript.ru/play/9NuHy

рони 17.05.2014 02:05

nerv_,
ну не любит ie когда переменная с id совпадает
"button" не определено

devote 17.05.2014 09:28

<form>
    <font class="tablebodytext">
        <p>текст</p>
        <input type="submit" value="Оплатить" name="BuyButton">
    </font>
<form>
<script type="text/javascript">
  document.querySelector('input[name="BuyButton"]').addEventListener('click', function(e) {
    alert('Worked: ' + document.body.innerHTML);
    e.preventDefault();
  }, false);

  // что бы не потерять привязку событий
  // элементы нужно перемещать
  // самый наипростейший вариант на чистом JS

  // ищем элемент font
  var font = document.querySelector('font');

  // перемещаем все из него
  while(font.firstChild) {
    // вставляем перед элементом font
    font.parentNode.insertBefore(font.firstChild, font);
  }
  // удаляем пустой элемент font
  font.parentNode.removeChild(font);
</script>

nerv_ 17.05.2014 11:47

devote, почти как у меня :) Только с "firstChild" изящней смотрится)

рони, для примера пойдет :)

Aetae 17.05.2014 12:02

nerv_,
и никто никогда не использует
elem.hasChildNodes()
:)

Hurray 17.05.2014 16:06

Цитата:

Сообщение от рони (Сообщение 312097)
$(".tablebodytext >")

Что обозначает такой селектор?

рони 17.05.2014 16:13

Hurray,
Цитата:

E > F Сопоставляется любому элементу F, который является дочерним элементом элемента E.
F неуказано значит - любой/все дочерний элемент

http://specs.operafan.net/css2.1RU/C...hild-selectors


Часовой пояс GMT +3, время: 23:15.