Ich habe den folgenden Code
<b class="xyzxterms" style="cursor: default; ">bryant keil bio</b>
Wie würde ich das b
Tag durch ein h1
Tag ersetzen , aber alle anderen Attribute und Informationen beibehalten?
javascript
jquery
Bammab
quelle
quelle
Antworten:
Hier ist eine Möglichkeit, wie Sie dies mit jQuery tun können:
Beispiel: http://jsfiddle.net/yapHk/
Update , hier ist ein Plugin:
Beispiel: http://jsfiddle.net/mmNNJ/
quelle
children
hat nicht funktioniert, abercontents
funktioniert..each
Block eingewickelt werden , wie eine Antwort unten auch zeigt.Ich bin mir bei jQuery nicht sicher. Mit einfachem JavaScript können Sie Folgendes tun:
DEMO
Ich bin mir nicht sicher, wie browserübergreifend dies ist.
Eine Variation könnte sein:
Weitere Informationen finden Sie unter
Node.attributes
[MDN] .quelle
while(child = child.nextSibling)
fehlgeschlagen ist. Vielen Dank!@jakov und @Andrew Whitaker
Hier ist eine weitere Verbesserung, damit mehrere Elemente gleichzeitig verarbeitet werden können.
quelle
Die Antwort von @ Jazzbo gab ein jQuery-Objekt zurück, das ein Array von jQuery-Objekten enthielt, das nicht verkettbar war. Ich habe es so geändert, dass es ein Objekt zurückgibt, das dem ähnelt, was $ .each zurückgegeben hätte:
(Hat auch einige Code-Bereinigungen durchgeführt, damit jslint übergeben wird.)
quelle
each
Schleife neu deklarieren zu müssen ).Ich kann mir nur vorstellen, alles manuell zu kopieren: Beispiel jsfiddle
HTML
Jquery / Javascript
quelle
@ Andrew Whitaker: Ich schlage diese Änderung vor:
Dann können Sie Dinge tun wie:
$('<div>blah</div>').changeElementType('pre').addClass('myclass');
quelle
Ich mag die Idee von @AndrewWhitaker und anderen, ein jQuery-Plugin zu verwenden - um das hinzuzufügen
changeElementType()
Methode . Aber ein Plugin ist wie eine Blackbox, egal wie der Code aussieht, wenn er klein ist und gut funktioniert ... Leistung ist also erforderlich und am wichtigsten als Code."Pure Javascript" hat eine bessere Leistung als jQuery: Ich denke, dass der Code von @ FelixKling eine bessere Leistung hat als der von @ AndrewWhitaker und anderen.
Hier ein "reines Javavascript" (und "reines DOM") Code, gekapselt in ein jQuery-Plugin :
quelle
Hier ist eine Methode, mit der ich HTML-Tags in jquery ersetze:
quelle
Mit
jQuery
ohne über Attribute zu iterieren:Das
replaceElem
Verfahren , das unten übernimmtold Tag
,new Tag
undcontext
und führt den Austausch erfolgreich:Viel Glück...
quelle
Javascript-Lösung
Kopieren Sie die Attribute des alten Elements in das neue Element
Ersetzen Sie das alte Element durch das neue Element
quelle
map
erstellt ein neues nicht verwendetes Array, das durch ersetzt werden könnteforEach
.Hier ist meine Version. Es handelt sich im Grunde genommen um die Version von @ fiskhandlarn, aber anstatt ein neues jQuery-Objekt zu erstellen, werden einfach die alten Elemente mit den neu erstellten überschrieben, sodass kein Zusammenführen erforderlich ist.
Demo: http://jsfiddle.net/0qa7wL1b/
quelle