Tengo una gran cadena HTML que contiene múltiples nodos secundarios.
¿Es posible construir un objeto DOM jQuery usando esta cadena?
Lo intenté $(string)
pero solo devuelve una matriz que contiene todos los nodos individuales.
Intentando obtener un elemento en el que pueda usar la función .find ().
javascript
jquery
html
usuario1033619
fuente
fuente
Respuestas:
Actualizar:
Desde jQuery 1.8, podemos usar $ .parseHTML , que analizará la cadena HTML a una matriz de nodos DOM. p.ej:
MANIFESTACIÓN
MANIFESTACIÓN
¿Qué está pasando en este código?
$('<div/>')
es una falsificación<div>
que no existe en el DOM$('<div/>').html(string)
se agregastring
dentro de esa falsificación<div>
como niños.contents()
recupera a los hijos de esa falsificación<div>
como un objeto jQuerySi quieres
.find()
trabajar, prueba esto:MANIFESTACIÓN
fuente
.find()
operaciones, verifique la demostraciónstring = '<input type="text" value="val" />'
$("<div/>")
, ¿por qué no puedes hacerlo$(string)
?A partir de jQuery 1.8, puede usar parseHtml para crear su objeto jQuery:
He creado un JSFidle que demuestra esto: http://jsfiddle.net/MCSyr/2/
Analiza la cadena HTML arbitraria en un objeto jQuery, y utiliza find para mostrar el resultado en un div.
fuente
Esto crea un objeto ficticio jQuery en el que puede colocar la cadena como HTML. Entonces, solo tienes a los niños.
fuente
.filter()
lugar de.find()
.También hay una gran biblioteca llamada cheerio diseñada específicamente para esto.
fuente
Utilizo lo siguiente para mis plantillas HTML:
Nota: Suponiendo si está utilizando jQuery
fuente
la razón por la cual $ (string) no funciona es porque jquery no encuentra contenido html entre $ (). Por lo tanto, primero debe analizarlo en html. una vez que tenga una variable en la que haya analizado el html. entonces puede usar $ (cadena) y usar todas las funciones disponibles en el objeto
fuente