2009-07-22 13 views
5

simplemente empecé a usar jQuery, y diversas fuentes sugieren que el siguiente debe ser utilizado para hacer referencia a un elemento por ID:Jquery - Referencia por ID - ¿Se supone que devuelve una matriz?

$("#imgThumbnail") 

teóricamente hacer algo como esto sea posible:

$("#imgThumbnail").src; 

Pero mis pruebas indica que algo como $("#imgThumbnail") devuelve una matriz, lo que hace necesaria la siguiente:

$("#imgThumbnail")[0].src; 

puedo volver aliado necesita hacer referencia por el índice de la matriz cada vez que intento hacer referencia a algo por ID (es decir, var oObj = $("#someobjectid")[0];)?

+0

sí, comencé al azar a tener este mismo problema también y no creo que ninguna de las respuestas a continuación lo resuelva. – jspooner

Respuesta

6

que debe obtener el atributo src para obtener el valor

$("#imgThumbnail").attr('src'); 
3

$ (especificador) devolverá una colección, así que sí, si desea llamar a algo en un miembro individual que necesita saber a cual. En la mayoría de los casos, aunque hay un operador de recolección, puede usarlo para lograr el mismo resultado. Por ejemplo, puede llamar a $ ('# imgThumbnail'). Attr ('src', 'value')

0

No creo que deba usar .src con jQuery.

Try $("#imgThumbnail").attr('src'); 

(esto va a leer el atributo src, se establece que con un segundo arg si se quiere)

Ver aquí: http://docs.jquery.com/Attributes/attr

0

para establecer el atributo src utilizar

$("#imgThumbnail").attr("src", value) 

si usa algo así como un selector de clase o una etiqueta como

$("img").attr("src", value) 

Modificará todos los atributos src de la imagen en la página. Por lo tanto, la función $ devuelve una matriz.

Y no necesita referenciarlo específicamente.

6

This post explica qué devuelve la función $ y varias formas de usarla.


$(selector) 

Devuelve un objeto jQuery, que podría contener un número de elementos DOM.


$(selector)[0] or $(selector).get(0) 

devuelve el primer resultado como un elemento DOM real.


$(selector).eq(0) or $($(selector).get(0)) 

Devuelve el elemento DOM envuelto en un objeto jQuery para que podamos hacer cosas como:

$(selector).eq(0).addClass("deleted").fadeOut(); 
1

Hay que tener en cuenta que en realidad no es una matriz, se trata de un objeto jQuery que, entre otras cosas, permite el acceso al estilo de matriz

1
$(whatever) 

devuelve el objeto jQuery. En el objeto jQuery puede hacer jQuery y jQuery plugin cosas, por ejemplo. .text() para devolver el texto dentro del elemento o .css("background", "pink") para hacer que los elementos sean rosados.

Dado que src no es algo de jQuery, no se puede acceder a él. Sin embargo src es tanto un atributo HTML, y se puede acceder a aquellos con el método attr:

.attr("src")` and `.attr("src", "http://www.example.com/myimage.png") 

src es también una de DOM-propiedad y se puede acceder a DOM-inmueble con [index] o por iteración a través del objeto jQuery con cada uno :

.each(function(){ 
    this.src = "http://www.example.com/myimage.png"; 
}) 
Cuestiones relacionadas