Frage

Ich arbeite an einem PHP-Dokument, das in dem jQuery-Code hat. Ich verwende einen replaceWith () -Funktionen äußeren divs abzustreifen und mit Spanne ersetzen. es scheint, dass ich nur mit <span> ersetzen kann und nicht <span class="something">

Warum?

Bearbeiten : Hier ist ein Beispiel für den Code ein:

Danke Dave, aber ich benutze eigentlich die zweite Option im Code oben, hier ist das, was ich zu tun versuchen:

$response[] = "jQuery('#myID').replaceWith('<span>'+jQuery('#myID').html()+'</span>');";

Der obige Code funktioniert. Grundsätzlich hat ich ein <a> Element I mit einem <span> Elemente ersetzt werden soll und die Klasse auf einer Ajax-Antwort ändern.

Nun, wenn ich hinzufügen Klassen zu einem der Spannweiten über :, wie folgt aus:

$response[] = "jQuery('#myID').replaceWith('<span class"something">'+jQuery('#myID').html()+'</span>');";

der Code bricht, ist es wegen der äußeren doppelten Anführungszeichen auf der jQuery-Anweisung?

Bearbeiten

So stellte ich heraus, ein Problem mit meinem <a> Elemente zu sein, ich habe versucht, zusätzlich zu ersetzen, zu entkommen, die doppelten Anführungszeichen um die Klasse :). Vielen Dank für die extrem schnelle Hilfe. Ich melde mich Kredit zu geben, wem Ehre gebührt:)

$response[] = "jQuery('#myID').replaceWith('<span class=\"something\">'+jQuery('#myID').html()+'</span>');";
War es hilfreich?

Lösung

Da die größte Veränderung ist die Zugabe von Zitaten, überprüfen, dass das Klassenattribut nicht in einem ungekündigten String wird offen gelassen:

// Broken:                 
$("div").replaceWith("<span class="something">");

// Fixed:
$('div').replaceWith('<span class="something">');

Andere Tipps

Aus Gründen der Lesbarkeit und vermeiden zu verwirrend, sich wie diese, sollten Sie mit der folgenden Syntax für jQuery DOM Insertion statt:

var myDiv = jQuery('#myID');
$('<span></span>').html(myDiv.html()).addClass('something').replaceAll(myDiv);

Oh, und wenn man genau auf die Art und Weise sehen Sie den Code in der Frage oben hervorgehoben ist, können Sie schon sehen, was Sie tun, ist falsch;)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top