将title属性中的文本附加到每个元素中

时间:2018-03-08 06:58:55

标签: jquery

我尝试将title属性中的文本附加到span元素中。问题是我的each function无法正常工作,因此它会向所有元素添加相同的文字。

我做错了什么?

HTML

<div class="item topitem"
 <a href="#">
 <img src="#"></a>
 <a href="#" title="text to ad to span from first element" class="topdesc"><span>.                   
 </span></a>
</div>

<div class="item topitem"
 <a href="#">
 <img src="#"></a>
 <a href="#" title="text to ad to span from second element" class="topdesc"><span>.                   
 </span></a>
</div>

脚本

$.each($('.topitem a.topdesc span'), function() {
  $(this).replaceWith('<span style="text-align:center;">'+ (".item.topitem div a.topdesc ").attr('title')+'</span>');
})

2 个答案:

答案 0 :(得分:1)

您可以迭代.topitem a.topdesc选择其title属性并将其设置为其中跨度的html。

&#13;
&#13;
$('.topitem a.topdesc').each(function() {
  var title = $(this).attr("title");
  $(this).find("span").html(title);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item topitem"
 <a href="#">
 <img src="#">
 </a>
 <a href="#" title="text to ad to span from first element" class="topdesc">
 <span>.                   
 </span></a>
</div>

<div class="item topitem"
 <a href="#">
 <img src="#"></a>
 <a href="#" title="text to ad to span from second element" class="topdesc">
 <span>.                   
 </span></a>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

代码中的问题是$(".item.topitem div a.topdesc ").attr('title')。此代码将始终以元素的第一个外观为目标。您需要获取当前目标元素标题,而不是像上面那样。您可以使用closest获取当前目标元素标题,如下所示。

$(this).closest("a.topdesc").attr('title')

$.each($('.topitem a.topdesc span'), function() {
  $(this).replaceWith('<span style="text-align:center;">' + $(this).closest("a.topdesc").attr('title') + '</span>');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item topitem">
  <a href="#">
    <img src="#"></a>
  <a href="#" title="text to ad to span from first element" class="topdesc"><span>.                   
     </span></a>
</div>

<div class="item topitem">
  <a href="#">
    <img src="#"></a>
  <a href="#" title="text to ad to span from second element" class="topdesc"><span>.                   
     </span></a>
</div>