jQuery this.html() undefined zurückgibt
Ich bin Neuformatierung einige wirklich schlechte HTML mit jQuery. Ich muss splice Geschwister <font>
Elemente zusammen. Ich habe versucht, diesen code:
$('font+font').each(function() {
this.html().appendTo( this.prev() );
this.remove();
});
aber es gab mir diese Fehlermeldung: TypeError: 'undefined' is not a function (evaluating 'this.html()')
Hier ist ein Beispiel des HTML:
<font>This fragment </font><font>is actually one element.</font>
Update
Ich aktualisierte mein code mit $(this)
, aber es immer noch nicht funktioniert. Wenn ich diesen code ausführen
$('font+font').each(function() {
$(this).html().appendTo( $(this).prev() );
$(this).remove();
});
Bekomme ich diesen Fehler: TypeError: 'undefined' is not a function (evaluating '$(this).html().appendTo( $(this).prev() )')
<font>
ist nicht HTML...Daher "wirklich schlechtes HTML." Es ist markup aus der Mitte der 90er Jahre.
Oh sorry, habe ich übersehen, das Teil. Ja, ich habe zu tun, dass alle die Zeit mit viel viel hässlicher code. Alte E-Commerce-software mit datierten Vorlagen aus der
spacer.gif
Tabelle layout-Tage...Ich empfehle kopieren der Elemente selbst statt.
$("font + font").each(function() { $(this).contents().appendTo($(this).prev()).end().remove(); });
.sehr schön, aber Sie brauchen, um zu verwenden
.end().end()
im Ort .end()
.InformationsquelleAutor Brandon Lebedev | 2012-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
this
werden, eingewickelt in ein jQuery-Objekt, bevor Sie die jQuery-Methoden auf..html()
gibt einen string zurück. Sie können die jQuery-Methoden für einen string ohne Umbruch. Verwenden$this.prev().append( $this.html() )
statt.$(this)
mehr als einmal, es ist klug, um zu speichern$(this)
in eine temporäre variable. Es ist die Konvention Präfix jQuery-Objekte mit einem dollar-Zeichen.Code:
InformationsquelleAutor Rob W
Wenn Sie eine each-Anweisung, es gibt
this
als ein DOM-element, nicht ein jQuery-Objekt..html()
muss aufgerufen werden, auf ein jQuery-Objekt. Also der erste Teil deiner Lösung ist, konvertierenthis
in einem jQuery-element mit der$
symbol.Das zweite problem ist, dass
html()
gibt einen string zurück. Sie können nicht nennenAppendTo()
an einer Schnur, nur ein jQuery-Objekt. Da arbeiten Sie mit.html()
ich nehme an, Sie möchten den string-Inhalt und nicht den vollständigen Inhalt. Wenn der der Fall waren, Rob ' s Antwort ist besser geeignet.Den endgültigen code endet auf der Suche wie diese:
http://jsfiddle.net/b6vLL37k/1
InformationsquelleAutor mrtsherman
Müssen Sie
$(this)
für jQuery, Ihnen zu helfen.InformationsquelleAutor Diodeus - James MacFarlane
Müssen Sie
$(this)
nichtthis
InformationsquelleAutor streetlogics
War ich nicht in der Lage, um das code. Wie wäre es mit etwas wie dieses:
<font>
element in ein einzelnes element, das ist nicht das, was ich tun möchte.InformationsquelleAutor osahyoun