-1

有什么方法可以使用 jQuery 或基本 Javascript 更改元素本身。例如:我们有一个 Html Tag as <a href="mysite.com" title='titlevalue'>Link</a>,我们可以这样替换它吗<a href="mysite.com" data-title='titlevalue'>Link</a>

是的,我们可以添加/删除标题/数据标题属性,但是我们有很多链接,所以如果我们能有这样的东西会更好。在谷歌和这里搜索但没有找到类似的东西,只是更改属性的值和添加/删除属性。

请指教。

谢谢

4

5 回答 5

1

嗯......没有jQuery......(只是因为有这个选项总是很好)

var el = document.getElementsByTagName("a");
for(i=0; i < el.length; i++) {
    el[i].setAttribute("data-title", el[i].getAttribute("title"));
    el[i].removeAttribute("title");
}
于 2013-09-25T15:25:58.587 回答
1

这会将所有 a-Tag 中的标题更改为数据标题:

$("a").each(function() {
$(this).attr("data-title", $(this).attr("title"));
$(this).data("title", $(this).attr("title"));
$(this).removeAttr("title");
});

http://jsfiddle.net/eC2cQ/

于 2013-09-25T15:23:04.357 回答
1

如果要将数据标题属性添加到每个锚标记,通过使用标题属性中的值,您可以执行以下操作:

$("a").each(function(){
    $(this).attr("data-title", $(this).attr("title"));
    $(this).removeAttr("title");
});
于 2013-09-25T15:21:53.223 回答
0

也可以这样做:

$('a').attr('data-title', function () {
    return this.title
}).removeAttr('title');
于 2013-09-25T15:25:40.933 回答
0

使用jQuery,您可以执行以下操作:

// 找到每个带有标题属性的标签

$( 'a[title]' ).each( function ( index, item ) {
  // cache your jQuery object
  var $item = $(item);

  // replace and remove the attributes
  $item.attr( 'data-title', $item.attr( 'title' ) );
  $item.removeAttr( 'title' );
});

一些注意事项:

  • 如果您想在页面中的元素上自定义属性,最好更改后端流程以创建这些新属性。对此进行扩展:如果您要手动编写新页面,只需写出新属性;如果您使用的是服务器端技术,请使用您已经使用的模板系统来写出这些新属性。
  • 您的示例不是很好的做法:标题属性对许多人和机器都很有用。用 data-title 替换它们可以防止许多标准技术找到其中包含的信息。数据属性隐含了额外的含义,它们是额外的、特定于应用程序的信息,并且链接标题更适合以通用方式使用。
  • 这是多余的:如果您可以读取数据属性,则还可以读取普通属性。
  • 在不使用 jQuery 的情况下,还有其他方法可以做到这一点,但现在它是一个非常典型的库
于 2013-09-25T15:39:25.363 回答