2009-11-28 10 views
17

Me pregunto si existe una forma de convertir una cadena en un objeto jQuery y seleccionar elementos internos sin inyectar toda la cadena en DOM y manipularla allí. Gracias.Convierta una cadena en un objeto jQuery y seleccione el elemento interno

Si es posible, por favor, dame ejemplo de la conversión de

<div id=a1></div> 
<div id=a3></div> 

Y seleccione A1 de la variable de objeto.

Respuesta

26

Esto creará elementos de la html y encontrar el elemento A1:

var element = $('<div id="a1"></div><div id="a3"></div>').filter('#a1').get(0); 
6

La forma correcta de hacerlo es:

var a1 = $('<div id="a1"></div><div id="a3"></div>').filter('#a1')[0]; 

Conseguir el elemento DOM con [0] es equivalente a .get(0) .

Actualización: interesante, nunca me he encontrado con este caso esquina antes de que esto:

var a1 = $("#a1", "<div id=a1><//div><div id=a3><//div>")[0]; 

no funciona cuando el elemento está en el nivel superior, que considero un insecto. Nunca me había encontrado con eso antes, así que pensé que lo dejaría aquí como una advertencia. Gracias a Crescent Fresh por señalar eso.

+2

No, lo que tiene se traduce en '$ () .find ('# a1')', y 'buscar' no busca elementos de nivel superior en el conjunto. La respuesta del 'filtro' de Guffa sí lo hace. –

Cuestiones relacionadas