Ist das möglich?
Beispiel:
$('a.change').click(function(){
//code to change p tag to h5 tag
});
<p>Hello!</p>
<a id="change">change</a>
Wenn Sie also auf den Änderungsanker klicken, sollte sich der <p>Hello!</p>
Abschnitt (als Beispiel) in ein h5-Tag ändern, sodass Sie <h5>Hello!</h5>
nach dem Klicken einen erhalten. Mir ist klar, dass Sie das p-Tag löschen und durch ein h5 ersetzen können, aber gibt es trotzdem eine Möglichkeit, ein HTML-Tag tatsächlich zu ändern?
"<" + el.outerHTML.replace(/(^<\w+|\w+>$)/g, "H5") + ">";
Oder steckbare jQuery-Funktion: LinkHier ist eine Erweiterung, die alles für so viele Elemente auf so viele Arten erledigt ...
Anwendungsbeispiel:
oder
oder auch
Plugin Quelle:
quelle
return node;
sollte eigentlich so seinreturn this;
wie in der "alten Version" des Plugins gezeigt. Dies ist im Wesentlichen für die Verkettung von Ereignissen wie$("tr:first").find("td").clone().replaceTag("li").appendTo("ul#list")
Anstatt den Tag-Typ zu ändern, sollten Sie den Stil des Tags (oder vielmehr das Tag mit einer bestimmten ID) ändern. Es empfiehlt sich nicht, die Elemente Ihres Dokuments zu ändern, um stilistische Änderungen anzuwenden. Versuche dies:
quelle
Ich bemerkte, dass die erste Antwort nicht ganz das war, was ich brauchte, also nahm ich ein paar Änderungen vor und dachte, ich würde sie hier zurück posten.
Verbessert
replaceTag(<tagName>)
Argumente:
Kehrt zurück:
Okay, ich weiß, dass es hier jetzt ein paar Antworten gibt, aber ich habe es auf mich genommen, dies noch einmal zu schreiben.
Hier können wir das Tag auf die gleiche Weise ersetzen, wie wir das Klonen verwenden. Wir verfolgen die gleiche Syntax wie .clone () mit der
withDataAndEvents
unddeepWithDataAndEvents
das Kopieren Sie die Kind - Knoten Daten und Ereignisse , wenn verwendet.Beispiel:
Quelle:
quelle
.children()
keine reinen Textknoten enthalten sind. Vielleicht möchten Sie.contents()
IIRC ausprobieren .Die Idee ist, das Element zu verpacken und den Inhalt auszupacken:
Beispielnutzung:
Demo
quelle
Ich habe einen Ansatz entwickelt, bei dem Sie eine Zeichenfolgendarstellung Ihres jQuery-Objekts verwenden und den Tag-Namen durch reguläre Ausdrücke und grundlegendes JavaScript ersetzen. Sie verlieren keinen Inhalt und müssen nicht jedes Attribut / jede Eigenschaft durchlaufen.
Schließlich können Sie das vorhandene Objekt / den vorhandenen Knoten wie folgt ersetzen:
quelle
Das ist meine Lösung. Es ermöglicht das Umschalten zwischen Tags.
quelle
Dies ist der schnelle Weg, um HTML-Tags in Ihrem DOM mithilfe von jQuery zu ändern. Ich finde diese Funktion replaceWith () sehr nützlich.
quelle
Sie können mit Hilfe von jQuery durch ein solches
data-*
Attribut erreichendata-replace="replaceTarget,replaceBy"
, dass Sie nach dem Abrufen von WertenreplaceTarget
&replaceBy
value by.split()
method erhalten und dann.replaceWith()
method verwenden.Diese
data-*
Attributtechnik zum einfachen Verwalten des Ersetzens von Tags, ohne diese zu ändern (allgemeiner Code für das Ersetzen aller Tags).Ich hoffe, dass das folgende Snippet Ihnen sehr helfen wird.
quelle
Die folgende Funktion erledigt den Trick und behält alle Attribute bei. Sie verwenden es zum Beispiel so:
changeTag("div", "p")
Überprüfen Sie das folgende Beispiel, um sicherzustellen, dass es funktioniert
quelle
Gibt es einen bestimmten Grund, warum Sie das Tag ändern müssen? Wenn Sie den Text nur vergrößern möchten, ist es besser, die CSS-Klasse des p-Tags zu ändern.
Etwas wie das:
quelle