document.getElementById("main").src = '02.jpg';

Obras

Pero

$('#main').src = '02.jpg';

No lo hace

0
steven 9 oct. 2009 a las 03:27

4 respuestas

La mejor respuesta
$("#main").attr("src", "02.jpg");
9
Mike Robinson 8 oct. 2009 a las 23:28

$("#main") es una colección de coincidencias de una búsqueda. document.getElementById("main") es un único elemento DOM, que tiene la propiedad src. Utilice el método attr(x,y) para cuando desee establecer algún atributo en todos los elementos de la colección que devuelve $(x), incluso si ese es solo un elemento como en getElementById(x).

Es similar a la diferencia entre int y int[]: ¡bestias muy diferentes!

0
Andrew Matthews 9 oct. 2009 a las 00:21

$ ('# main'). src = '02 .jpg ';

El contenedor jQuery que obtiene de $ (...) no reproduce todas las propiedades y métodos de los objetos DOM que envuelve. Debe atenerse a los métodos específicos de jQuery en el objeto contenedor: en este caso attr según lo detallado por Mike.

La biblioteca ‘prototype ', en contraste con jQuery, aumenta los objetos DOM existentes en lugar de envolverlos. Entonces obtienes los métodos y propiedades anteriores como .src además de los nuevos. Hay ventajas y desventajas en ambos enfoques.

1
bobince 8 oct. 2009 a las 23:43

$('#main') devuelve un objeto jQuery, no un elemento HTMLE, por lo tanto, no se define ninguna propiedad src en el objeto jQuery. Puede encontrar este artículo útil.

Mike ha mostrado una forma de configurar el atributo src (la forma en que ha mostrado probablemente podría considerarse la forma más similar a jQuery de hacerlo). Un par de otras formas

$("#main")[0].src = '02.jpg';

O

$("#main").get(0).src = '02.jpg';
7
Russ Cam 8 oct. 2009 a las 23:34