从前一个手风琴标题添加替代文字到图像

时间:2014-08-19 20:19:04

标签: jquery

我想在jQuery手风琴中添加H3标签的内容到兄弟DIV中图像的“alt”文本。我尝试了各种方法但没有成功,这段代码对我来说似乎合乎逻辑,但仍然无效。有人能指出我正确的方向吗?

这是(简化的)HTML:

<div id="accordion">
    <h3>Some stuff here</h3>
    <div>
        <img src="some_place.jpg" width="100" height="100">
    </div>
    ...(repeat several times)
</div>

这是jQuery代码:

$( document ).ready(function() {
    $( "#accordion" ).accordion();
    $( "img" ).each(function() {
        var $title = $(this).prev( "h3" ).text();
        $(this).attr( "alt", $title )
        });
});

这段代码对我来说似乎有用,但bupkiss ...这里是浏览器中的图片代码:

<img src="some_place.jpg" width="100" height="100" alt>

2 个答案:

答案 0 :(得分:2)

$(this).prev( "h3" ).text();无法工作,因为它选择了前一个元素,并且没有相对于图像的元素。而是使用:

$(this).parent().prev("h3").text();

<强> jsFiddle example

答案 1 :(得分:0)

Isherwood&amp;大卫是对的:j08691是正确的。我没注意到DIV是H3标签的兄弟。