使用JQuery更改title属性以反映元素文本值

时间:2012-01-16 19:44:31

标签: jquery

我想在document.ready函数中使用JQuery将title属性设置为span,paragraph或div标签的内部文本。

这是我的标记:

<span class="ellipsis">Text inside span tag.</span>
<p class="ellipsis">Text inside paragraph tag.</p>
<div class="ellipsis" >Text inside div tag tag.</div>

我想添加标题属性来创建这样的标记:

<span class="ellipsis" title="Text inside span tag.">Text inside span tag.</span>
<p class="ellipsis" title="Text inside paragraph tag.">Text inside paragraph tag.</p>
<div class="ellipsis" title="Text inside div tag tag.">Text inside div tag tag.</div>

我理解如何更改标题属性,我似乎无法找到将其更改为特定元素值或文本。

2 个答案:

答案 0 :(得分:3)

尝试:

$('.ellipsis').each(function() {
  $(this).prop('title', $(this).text());
});

.each()函数在这样的情况下非常有用:为了对元素做某些事情,你需要单独从每个元素中获取一些东西。

答案 1 :(得分:0)

假设您要使用ellipsis类为每个元素设置标题,您可以这样做:

$(".ellipsis").each(function(){
    $this = $(this);
    $this.attr("title", $this.text());
});

<强>更新

正如@Pointy指出的那样,在jQuery 1.6+中,使用.prop()优于.attr()可能更好,即使大多数使用应该给你相同的结果。如果您想知道原因,请参阅.prop() vs .attr()