2008-09-06 12 views
67

estoy luchando para encontrar la terminología aquí, pero si usted tiene objeto jQuery ...recibiendo el elemento base de un objeto jQuery

$('#MyObject') 

... ¿es posible extraer el elemento de base? Significado, el equivalente de esto:

document.getElementById('MyObject') 

Respuesta

54

Sí, use .get(index). De acuerdo con la documentation:

El .get() método permite el acceso a los nodos DOM subyacentes cada objeto jQuery.

95
$('#MyObject').get(0); 

creo que eso es lo que quiere. Creo que también se puede hacer referencia como una matriz normal con:

$('#MyObject')[0]; 

Pero no estoy seguro de si eso siempre funcionará. Quédate con la primera sintaxis

+0

cuando console.log '$ ('# MyObject) .get (0)' dentro de las etiquetas html es ': before' y': after' al usar chrome. ¿Alguna idea de lo que esto significa? –

9

Un objeto jQuery es un conjunto de elementos. En tu caso, un conjunto de un elemento. Esto difiere de otras bibliotecas, que envuelven elementos individuales y proporcionan una sintaxis alternativa para selectores que devuelven múltiples coincidencias.

Aaron W y VolkerK ya se explicó cómo acceder al primer elemento (índice 0) en el conjunto.

5

He probado declaraciones de Aaron en todos los navegadores que tengo disponibles en mi caja:

$('#MyObject').get(0); 

vs

$('#MyObject')[0]; 

Por lo que yo puedo decir, es sólo una cuestión de personal preferencia.

Funcionalmente, ambas declaraciones son equivalentes para los elementos existentes y no existentes. Probé los siguientes navegadores: Chrome 27.0, FF 21.0, IE10, IE9, IE8, IE7, IE6.

En las pruebas de velocidad que ejecuté, no siempre fue posible determinar qué variación era más rápida; el resultado no siempre fue uniforme, incluso en el mismo navegador. Para las pruebas de velocidad, solo probé elementos existentes. Los resultados de mi prueba son here.

Cuestiones relacionadas