2011-10-24 18 views
31

tengo el siguiente código HTML:La actualización del valor del atributo de datos usando jQuery

<a class="toggle" href="#toggle"> 
    <img src="app/css/images/tock.png" alt="No" data-id="4" data-block="1"> 
</a> 

Quiero actualizar el valor de los src y data-block atributos utilizando jQuery. ¿Cómo hago esto?

Actualización: Como tengo muchos elementos de imagen, quiero actualizar el valor de una imagen específica usando data-id.

Respuesta

74
$('.toggle img').data('block', 'something'); 
$('.toggle img').attr('src', 'something.jpg'); 

Uso jQuery.data y jQuery.attr.

Te lo estoy mostrando por separado por el bien de la comprensión.

+0

lo siento se me olvidó mencionar, pero yo quiero seleccionar img específica mediante el uso de datos de identificación, el selector debe seleccionar el elemento de imagen mediante la identificación de datos, por ejemplo, algo como '$ ('alternar img [data-id = 4]')' –

+3

Usted está casi allí: '$ ('toggle img [data-id =" 4 "]')' –

+13

FWIW, estoy descubriendo que en Para anular un atributo de datos, debe usar '.attr' y no' .data'. Esto es confuso porque jQuery puede adjuntar datos al elemento, pero eso podría no reflejarse en el dom si el atributo de datos ya existía. –

2
$('.toggle img').data('block', 'something').attr('src', 'something.jpg'); 
+0

esto no es lo que yo quería, he actualizado mi pregunta, eche un vistazo. –

7
$('.toggle img').each(function(index) { 
    if($(this).attr('data-id') == '4') 
    { 
     $(this).attr('data-block', 'something'); 
     $(this).attr('src', 'something.jpg'); 
    } 
}); 

o

$('.toggle img[data-id="4"]').attr('data-block', 'something'); 
$('.toggle img[data-id="4"]').attr('src', 'something.jpg'); 
+0

utilizando jQuery.attr y no jQuery.data, como se propone en esta respuesta, causa errores en algunos navegadores. ha estado allá. – TheBigDoubleA

+5

usando datos es de hecho una buena sugerencia, pero tenga en cuenta que no modifica el elemento dom original, lo que podría dar problemas con otros jquery que dependen del cambio de dom. http://www.peterbe.com/plog/data-and-attr-in-jquery –

Cuestiones relacionadas