在兄弟姐妹中使用ALT文本填充H3标签 - >儿童IMG标签

时间:2014-08-20 15:07:58

标签: jquery

感谢其他有用的人,我学会了如何在jQuery Accordion中填充图像的IMG ALT属性。现在我想做相反的事情:从一组图像中取出ALT文本并填充父H3标签。这是HTML:

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

这是我的jQuery代码:

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

这是有效的,但只能通过使用第一张图像中的ALT标记填充所有H3标签。即,所有H3标签都有文字&#34;有些东西在这里&#34;。

我做错了什么?我应该以某种方式将所有ALT文本放入一个数组中,然后将其反馈?我所做的每一次尝试都打破了页面(没有数组,没有手风琴。)

2 个答案:

答案 0 :(得分:1)

您需要在每个内部使用this而不是h3this指的是当前元素

使用

$("h3").each(function() {
    var $title = $(this).siblings().children("img").attr("alt");
    $(this).text($title); //Use this here
});

答案 1 :(得分:0)

您可以尝试以下代码:

$("h3").text( function() {
    return $(this).next().children("img").attr("alt");
});

<强> JSFiddel