2013-03-09 2 views
1

У меня есть следующий код:

<img class="sth" data-number="1" src="sth.jpg" alt=""> 

Есть несколько таких элементов, и все они отличаются только в данных чисел. Я хочу сделать следующее для всех элементов:

$('.sth').attr('src', 'sth' + data('number') + '.jpg'); 

так, чтобы каждое изображение меняло src своим собственным числом.

Однако данные ('number') не работают, а $ ('. Sth'). Data ('number') изменяет все с помощью sth1.jpg.

Есть ли способ сделать это?

ответ

1

Да, с помощью функции JQuery each() следующим образом:

$('.sth').each(function(){ 
    $(this).attr('src', 'sth' + $(this).data('number') + '.jpg'); 
}); 

Какой будет выполняться на каждом элементе согласованного селектором .sth.

+0

Это правильно:. Оригинальный автор почти делает это правильно, когда они сделали '$ (« STH „) данные (“ число»)', но использование 'each()' будет оценивать каждый экземпляр «.sth» отдельно. – ChrisC

3

Вы можете сделать это с помощью attr() функции

$('.sth').attr('src', function(){ 
    return 'sth' + $(this).data('number') + '.jpg'; 
}); 
Смежные вопросы