Podmiana znacznika span na div bez zmiany zawartości

Podmiana znacznika span na div bez zmiany zawartości
AS
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,

Pytanie może głupie ale zapewne proste. Tak jak w temacie chciałbym za pomocą javascript-u podmienić znacznik span na div bez usuwania jego zawartości. Czy jest taka możliwość?

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
2

Pisane z palca, do pomocy zaprzęgniete jQuery:

Kopiuj
var sourceToBeReplaced = $("#source-to-be-replaced");
sourceToBeReplaced.replaceWith($("<div>").html(sourceToBeReplaced.html()));

Po co chcesz podmieniać jeden tag na drugi? Oba to tylko elementy html, możesz je ostylować tak samo i będą się zachowywać identycznie.

AS
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za odpowiedź. Chcę to zmienić ze względu na błąd wynikający z konieczności zamieszczania znaczników div wewnątrz span. Strona stoi na platformie IAI i nie mogę ręcznie tego zmienić.

Mam jednak jeszcze pytanie. Czy jest opcja by to zrobić bez dodatkowych bibliotek? System i tak już jest zaśmiecony imo.

EDIT. Doprecyzuje tylko iż chodzi mi o konkretny span posiadający klasę.

KU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
1
Kopiuj
var div = document.createElement('DIV');
var span = deocument.getElementById('twojspan');
div.innerHTML = span.innerHTML;
span.parentNode.insertBefore(div, span);
span.parentNode.removeChild(span);

Nie testowane, tak na oko

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
1

Żeby podmienić przez js znacznik span na div, to drzewo DOM i tak musi być załadowane, więc divy muszą być już umieszczone w span. To oznacza, że "błąd" i tak poleci. Ten błąd to tak naprawdę warning, bo każda przeglądarka i tak pokaże prawidłowy wynik - span nie zostanie zignorowany. Z tego powodu Twoja zmiana nic nie poprawi, a tylko wydłuży proces renderowania strony.

AS
  • Rejestracja: dni
  • Ostatnio: dni
0

No trudno. Dziękuję raz jeszcze ze odpowiedzi.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.