помогите с .each.replaceWith () jQuery - PullRequest
0 голосов
/ 09 апреля 2011

Я просто пытаюсь написать некоторый код, для каждого элемента определенного класса мне нужно найти определенный атрибут, а затем заменить элемент. код, который у меня есть сейчас, выглядит так:

<div class="a-photo" alt="*/THE IMG SRC*/"></div>
<div class="a-photo" alt="*/THE IMG SRC*/"></div>
<div class="a-photo" alt="*/THE IMG SRC*/"></div>
<div class="a-photo" alt="*/THE IMG SRC*/"></div>

$('.a-photo').each().replaceWith(function(){
var hash = $(this).attr('alt')
"<div class='a-photo' style='background:url("+ hash +") center no-repeat;></div>"
});

Я знаю, что это неправильно, и это не работает, но я не могу придумать, как это написать, любая помощь будет принята с благодарностью!

EDIT

Следует отметить, что количество элементов не предопределено.

Ответы [ 2 ]

2 голосов
/ 09 апреля 2011

Я думаю, вы хотите следующее:

$('.a-photo').each()(function(){
    $(this).css({'background':'url('+$(this).attr('alt') + ') center no-repeat'});
});
1 голос
/ 09 апреля 2011

Вы используете each().replaceWith, что является ошибкой и также излишним, потому что replaceWith уже делает то же самое.Попробуйте:

$('.a-photo').replaceWith(function(){
  var alt = $(this).attr('alt');
  return "<div class='a-photo' style='background:url("+ alt +") center no-repeat;></div>";
});
...