javascript - jQuery:将 img alt 标签更改为列表值

标签 javascript jquery each

我创建了一个列表,其中每个列表项都包含一个图像和一个标题。我现在希望图像 alt 和标题标签与列表项中的标题相同,但我无法让它正常工作。目前,我将所有标题放入所有 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
    });
});
}); 

最佳答案

<p>元素遵循每个 <img> ,所以:

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

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

演示: http://jsfiddle.net/cquJX/

关于javascript - jQuery:将 img alt 标签更改为列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14604160/

相关文章:

javascript - 在用户输入上使用 setTimeOut 来触发事件

javascript - 如何在 ReactJS 的功能组件中声明一个变量

javascript - JQuery 获取表中的选择元素

jquery - jQuery 中的 if 语句总是返回 true

javascript - 将纬度/经度坐标推送到 Google map 数组

javascript - 使用 JavaScript 函数从数组中获取单个对象

javascript - 如何将页面上的所有文本放入一个字符串中

javascript - 随机颜色 jquery 框

javascript - CSS制作:active toggled

jquery - 在每个输入之间迭代以验证值