2011-10-24 14 views
31

Ho il seguente codice HTML:Aggiornamento del valore dell'attributo dati utilizzando jQuery

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

voglio aggiornare il valore delle src e data-block attributi utilizzando jQuery. Come faccio a fare questo?

Aggiornamento: Poiché ho molti elementi immagine, voglio aggiornare il valore di un'immagine specifica utilizzando data-id.

risposta

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

Usa jQuery.data e jQuery.attr.

Le sto mostrando separatamente per motivi di comprensione.

+0

Mi spiace dimenticato di dire, ma voglio selezionare img specifica utilizzando i dati-id, il selettore deve selezionare l'elemento di immagine da id i dati, ad esempio qualcosa come '$ ('toggle img [data-id = 4]')' –

+3

Sei quasi arrivato: '$ ('toggle img [data-id =" 4 "]')' –

+13

FWIW, sto trovando che in per sovrascrivere un attributo dati, devi usare '.attr' e non' .data'. Ciò è fonte di confusione perché jQuery è in grado di allegare dati all'elemento, ma ciò potrebbe non riflettersi nella dom se l'attributo dati esiste già. –

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

questo non è quello che volevo, ho aggiornato la mia domanda per favore dare un'occhiata. –

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

utilizzando jQuery.attr e non jQuery.data, come proposto in questa risposta, causa errori in alcuni browser. ci sono stato. – TheBigDoubleA

+5

utilizzando i dati è davvero un buon suggerimento, ma tieni presente che non modifica l'elemento dom originale, che potrebbe causare problemi con altri jquery che dipendono dal cambiamento del dom. http://www.peterbe.com/plog/data-and-attr-in-jquery –

Problemi correlati