jQuery:将img alt标签更改为列出值

时间:2013-01-30 12:36:01

标签: javascript jquery each

我创建了一个列表,其中每个列表项都包含图像和标题。我现在希望图像alt和title标签与列表项中的标题相同,但我无法让它正常工作。目前,我将所有标题都添加到所有img标签中(这可以从我的js中获得),但是我无法弄清楚如何让第一个$('ul li img')只获取第一个$('ul li').text() },第二个拿起第二个$('ul li').text()等等。

HTML:

<ul>
<li><img src="path.jpg" /><p>Title 1</p></li>
<li><img src="path.jpg" /><p>Title 2</p></li>
</ul>

JS:

$(document).ready(function() {
$('ul li img').each(function() {
    var valueTitle = $('ul li').text();
    $(this).attr({
        alt: valueTitle,
        title: valueTitle
    });
});
}); 

1 个答案:

答案 0 :(得分:2)

<p>元素跟随每个<img>,因此:

$("ul li img").each(function() {
    var $this = $(this),
        valueTitle = $this.next("p").text();

    $this.attr({
        alt: valueTitle,
        title: valueTitle
    });
});

DEMO: http://jsfiddle.net/cquJX/