如何在jQuery中将title
属性更改为data-title
?我不希望显示浏览器工具提示,以及我创建的自定义工具提示。
<a title="my content"></a>
到
<a data-title="my content"></a>
Wordpress没有在wp-admin中向菜单添加自定义属性的选项,所以我必须使用jQuery。当我将鼠标悬停在浏览器工具提示未显示的菜单链接上时,只有我自己制作的自定义工具提示显示。
我如何解决这个问题?
答案 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);
});