获取子ID并将父项添加为ARIA属性

时间:2015-01-30 09:08:45

标签: javascript jquery wai-aria

我在一个页面上有许多图像和标题,在<figure><img><figcaption>组中设置。我想使用JavaScript(或jQuery)获取figcaption的ID并添加&#39; aria-labelledby&#39;属性为父<figure>

例如,我有以下(简化):

<figure id="figure1">
    <img src="x.jpg">
    <figcaption id="caption1">Sample</figcaption>
</figure>

<figure id="figure2">
    <img src="y.jpg">
    <figcaption id="caption2">Sample</figcaption>
</figure>

如何循环浏览每个元素并添加适当的“aria-labelledby”&#39;属性,例如aria-labelledby="caption1"

我尝试了这个,但得到了一个未定义的函数错误:

$('figure').attr('aria-labelledby', function() {
    $(this).find('figcaption').attr('id');
})

任何帮助表示感谢。

由于

1 个答案:

答案 0 :(得分:2)

您需要return该值,否则您无法使用该值。

$('figure').attr('aria-labelledby', function() {
    return $(this).find('figcaption').attr('id');
})
演示

$('figure').attr('aria-labelledby', function() {
  return $(this).find('figcaption').attr('id');
})
[aria-labelledby] {
  color: #f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<figure id="figure1">
    <img src="x.jpg">
    <figcaption id="caption1">Sample</figcaption>
</figure>

<figure id="figure2">
    <img src="y.jpg">
    <figcaption id="caption2">Sample</figcaption>
</figure>