jQuery помещает содержимое р в атрибут - PullRequest
1 голос
/ 02 октября 2011

я впервые здесь ...

У меня следующий сценарий:

<div class="album-wrap">
    <img src="picture.jpg" alt="Mickey">
    <p class="caption">little mouse</p>
</div>

<div class="album-wrap">
    <img src="picture2.jpg" alt="Donald">
    <p class="caption">little duck</p>
</div>

Вопрос: как я могу поместить содержимое заголовка класса в атрибуты alt?Или, может быть, создайте другой атрибут и поместите содержимое класса заголовка.Спасибо.

Ответы [ 3 ]

4 голосов
/ 02 октября 2011

Переберите каждый контейнер и получите содержимое элемента p, используя .text().Затем присвойте это значение атрибуту alt, используя .attr().

$(".album-wrap").each(function(){
    var caption = $("p.caption", this).text();
    $("img", this).attr("alt", caption);
})
1 голос
/ 02 октября 2011

Заменить альтернативное содержимое текстом заголовка.

$('.caption').each( function() {
    var $this = $(this),
        $img = $(this).prev('img');
    $img.attr('alt', $this.text() );
});

Добавить текст заголовка к альт-содержимому.

$('.caption').each( function() {
    var $this = $(this),
        $img = $(this).prev('img'),
        alt = $img.attr('alt');
    $img.attr('alt', alt + ': ' + $this.text() );
});
0 голосов
/ 02 октября 2011

Я бы перебрал элементы img и установил бы атрибуты alt для внутреннего текста их соответствующих элементов p.caption.

$('.album-wrap img').each(function() {
    var $img = $(this);
    $img.attr('alt', $img.siblings('.caption').text());
});
...