在锚标记中将标题更改为数据标题?

时间:2014-11-18 12:48:35

标签: jquery

如何在jQuery中将title属性更改为data-title?我不希望显示浏览器工具提示,以及我创建的自定义工具提示。

<a title="my content"></a>

<a data-title="my content"></a>

Wordpress没有在wp-admin中向菜单添加自定义属性的选项,所以我必须使用jQuery。当我将鼠标悬停在浏览器工具提示未显示的菜单链接上时,只有我自己制作的自定义工具提示显示。

我如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

$('a[title]').attr('data-title', function() {
    return $(this).attr('title');
}).removeAttr('title');

这最有效的原因是因为你在这里纯粹使用属性。使用属性(.prop())或对象数据(.data())可能会将您想要的信息存储在对象中作为属性。也就是说,当您执行data-title之类的操作时,jQuery不会添加$('#myId').data('title', 'foo')属性,但是如果您像我一样设置属性,它将会被添加。

另外,代替$(this).attr('title'),您可以使用this.title,就像Vohuman在对此答案的评论中所说的那样,但这对整体功能或性能的影响微乎其微。

答案 1 :(得分:1)

试试这个

$(function() {
  var content =  $('a').attr('title');
  $('a').removeAttr('title');
  $('a').attr('data-title', content);
 })

答案 2 :(得分:0)

试试这个:

$('a').each(function(){
  var title = $(this).prop('title');
  $(this).removeProp('title');
  $(this).data('title',title);
});

答案 3 :(得分:0)

我想最简单的方法可能是:

$('a[title]').each(function() {
    var $this = $(this),
        title = $this.attr('title');
    $this.removeAttr('title')
         .attr('data-title', title);
});