1

我有一个小脚本,它采用图像的 alt 标签并将其添加为文本,如下所示:

 $(".field-item a img").each(function(i, ele) {
          $(".field-item").append("<span>"+$(ele).attr("alt")+"</span>");
      });​

我遇到的问题是我得到了重复,其中每个 alt 标签都作为文本添加到每个图像中。所以对于“ image-1”,image-1image-2作为文本添加,我只希望将相应的 alt 标签添加为文本。

我厌倦了使用.closest()例如

$(".field-item").closest().append("<span>"+$(ele).attr("alt")+"</span>");

...但这似乎并没有奏效。我在这里提琴:

http://jsfiddle.net/6pAZE/4/

4

2 回答 2

3

您可以使用该closest()方法,目前您field-item在每次迭代中选择所有具有类的元素,请尝试以下操作:

 $(".field-item a img").each(function(i, ele) {
     var alt = this.alt;
     $(this).closest(".field-item").append("<span>"+alt+"</span>");
     // or $(this).after("<span>"+alt+"</span>");
 });

小提琴

于 2012-08-17T00:40:13.023 回答
1

您需要上到.closest('.field-item')然后附加您的文本。

http://jsfiddle.net/6pAZE/6/

于 2012-08-17T00:41:34.297 回答