Mam następujący kod
<b class="xyzxterms" style="cursor: default; ">bryant keil bio</b>
Jak zamienić b
tag na h1
tag, ale zachować wszystkie inne atrybuty i informacje?
javascript
jquery
bammab
źródło
źródło
Odpowiedzi:
Oto jeden sposób, w jaki możesz to zrobić za pomocą jQuery:
Przykład: http://jsfiddle.net/yapHk/
Zaktualizuj , oto wtyczka:
Przykład: http://jsfiddle.net/mmNNJ/
źródło
children
nie zadziałało, ale zadziałałocontents
..each
blok, tak jak pokazuje odpowiedź poniżej.Nie jestem pewien co do jQuery. Za pomocą zwykłego JavaScript możesz:
PRÓBNY
Nie jestem pewien, jak jest to zgodne z różnymi przeglądarkami.
Odmiana może być:
Więcej informacji można znaleźć w
Node.attributes
[MDN] .źródło
while(child = child.nextSibling)
nie udało. Dzięki!@jakov i @Andrew Whitaker
Oto dalsze ulepszenie, dzięki któremu może obsługiwać wiele elementów jednocześnie.
źródło
Odpowiedź @ Jazzbo zwróciła obiekt jQuery zawierający tablicę obiektów jQuery, której nie można łączyć w łańcuch. Zmieniłem go tak, aby zwracał obiekt bardziej podobny do tego, co zwróciłoby $ .each:
(Również wyczyściłem kod, aby przeszedł przez jslint.)
źródło
each
pętli).Jedynym sposobem, o którym przychodzi mi do głowy, jest ręczne skopiowanie wszystkiego: przykład jsfiddle
HTML
Jquery / Javascript
źródło
@Andrew Whitaker: Proponuję tę zmianę:
Następnie możesz wykonać następujące czynności:
$('<div>blah</div>').changeElementType('pre').addClass('myclass');
źródło
Podoba mi się pomysł @AndrewWhitaker i innych, aby użyć wtyczki jQuery - aby dodać
changeElementType()
metodę. Ale wtyczka jest jak czarna skrzynka, nie ma znaczenia kod, jeśli jest mały i działa dobrze ... Zatem wydajność jest wymagana i jest najważniejsza niż kod.„Czysty javascript” ma lepszą wydajność niż jQuery: Myślę, że kod @ FelixKling ma lepszą wydajność niż @ AndrewWhitaker i inne.
Tutaj „czysty Javavascript” (i „czysty DOM”), umieszczony we wtyczce jQuery :
źródło
Oto metoda, której używam do zamiany tagów html w jquery:
źródło
Z
jQuery
bez iteracji nad atrybuty:replaceElem
Poniżej sposób przyjmujeold Tag
,new Tag
icontext
wykonywane jest z powodzeniem wymianę:Powodzenia...
źródło
Rozwiązanie JavaScript
Skopiuj atrybuty starego elementu do nowego elementu
Zastąp stary element nowym elementem
źródło
map
tworzy nową nieużywaną tablicę, którą można zastąpićforEach
.Oto moja wersja. Zasadniczo jest to wersja @ fiskhandlarn, ale zamiast konstruować nowy obiekt jQuery, po prostu nadpisuje stare elementy nowo utworzonymi, więc nie jest konieczne scalanie.
Demo: http://jsfiddle.net/0qa7wL1b/
źródło