如何根据内部HTML设置标签的标题?

时间:2014-01-21 10:30:13

标签: jquery jquery-1.5

我有一个包含大量复选框的html表单字段。

如何在其内部HTML上设置标签的标题?我需要为所有标题执行此操作。

例如,我需要转换

<div id=field>
  <label class='option'>Ski</label>
  <label class='option'>Hockey</label>
  <label class='option'>Baseball</label>
</div>

为:

<div id=field>
  <label title='Ski' class='option'>Ski</label>
  <label title='Hockey' class='option'>Hockey</label>
  <label title='Baseball' class='option'>Baseball</label>
</div>

我尝试了以下jQuery代码:

$('#field label.option').attr('title',$(this).html());  

但它给了我很多垃圾。

那么如何获取每个匹配标签内的值?

这是jQuery 1.4.4。

请告知。

3 个答案:

答案 0 :(得分:3)

$('#field label.option').attr('title',function(){ return $(this).text() });

答案 1 :(得分:2)

title属性应仅包含文字,因此您最好使用text()

$('#field label.option').prop('title', function() { return $(this).text(); });

如果您绝对 title设置为内部HTML,请使用html()

$('#field label.option').prop('title', function() { return $(this).html(); });

jsFiddle Demo

答案 2 :(得分:0)

这可能会对你有所帮助

$('.option').each(function(i,lbl)
   {
       $(lbl).attr('title',$(this).html());
   }
);