Ich habe eine große HTML-Zeichenfolge, die mehrere untergeordnete Knoten enthält.
Ist es möglich, mit dieser Zeichenfolge ein jQuery- DOM-Objekt zu erstellen?
Ich habe es versucht, $(string)
aber es wird nur ein Array zurückgegeben, das alle einzelnen Knoten enthält.
Imtrying, um ein Element zu erhalten, für das ich die Funktion .find () verwenden kann.
javascript
jquery
html
user1033619
quelle
quelle
Antworten:
Aktualisieren:
Ab jQuery 1.8 können wir $ .parseHTML verwenden , mit dem die HTML-Zeichenfolge in ein Array von DOM-Knoten analysiert wird. z.B:
DEMO
DEMO
Was passiert in diesem Code:
$('<div/>')
ist eine Fälschung<div>
, die im DOM nicht existiert$('<div/>').html(string)
hängtstring
innerhalb dieser Fälschung<div>
als Kinder.contents()
Ruft die<div>
untergeordneten Elemente dieser Fälschung als jQuery-Objekt abWenn Sie arbeiten möchten,
.find()
versuchen Sie Folgendes:DEMO
quelle
.find()
Vorgang auch ausführen , überprüfen Sie die Demostring = '<input type="text" value="val" />'
$("<div/>")
, warum kannst du das nicht$(string)
?Ab jQuery 1.8 können Sie einfach parseHtml verwenden, um Ihr jQuery-Objekt zu erstellen:
Ich habe ein JSFidle erstellt, das dies demonstriert: http://jsfiddle.net/MCSyr/2/
Es analysiert die beliebige HTML-Zeichenfolge in ein jQuery-Objekt und verwendet find, um das Ergebnis in einem div anzuzeigen.
quelle
Dadurch wird ein Dummy-jQuery-Objekt erstellt, in das Sie die Zeichenfolge als HTML einfügen können. Dann bekommen Sie nur die Kinder.
quelle
.filter()
anstelle von verwenden.find()
.Es gibt auch eine großartige Bibliothek namens Cheerio, die speziell dafür entwickelt wurde.
quelle
Ich verwende Folgendes für meine HTML-Vorlagen:
Hinweis: Angenommen, Sie verwenden jQuery
quelle
Der Grund, warum $ (string) nicht funktioniert, ist, dass jquery keinen HTML-Inhalt zwischen $ () findet. Daher müssen Sie es zuerst in HTML analysieren. Sobald Sie eine Variable haben, in der Sie das HTML analysiert haben. Sie können dann $ (Zeichenfolge) verwenden und alle für das Objekt verfügbaren Funktionen verwenden
quelle