当前位置:  开发笔记 > 编程语言 > 正文

如何使用jQuery更改HTML属性名称?

如何解决《如何使用jQuery更改HTML属性名称?》经验,为你挑选了3个好方法。

我想class="testingCase"在整个html文档中更改所有属性的名称.

例如:变化:

Blabla
Bloo

对此:

Blabla`
Bloo`

我在想一个查找和替换,但似乎很多代码很容易.这个或简单方法有jQuery函数吗?



1> nickf..:

我不认为你可以"重命名"一个属性,但是你可以创建新属性并删除其他属性......

$('a.testingCase[title]').each(function() {
  var $t = $(this);
  $t.attr({
      newTitleName: $t.attr('title'),
    })
    .removeAttr('title');
});

Blabla
Bloo


2> e-satis..:

我认为您不能更改属性名称,但您可以做的是:

获取具有title属性的所有标记;

foreach,创建一个newTitleName属性,其值与标题相同;

然后删除title属性.

JQuery允许你以这种方式使用内置函数:

/* get all  with a "title" attribute that are testingCase
then apply an anonymous function on each of them */

$('a.testingCase[title]').each(function() {   

    /* create a jquery object from the  DOM object */
    var $a_with_title = $(this);    

    /* add the new attribute with the title value */
    $a_with_title.attr("newTitleName", $a_with_title.getAttribute('title'));

    /* remove the old attribute */
    $a_with_title.removeAttr('title'); 

});



3> trgraglia..:

稍后,但这个链接有一个很棒的jquery函数扩展:

jQuery.fn.extend({
  renameAttr: function( name, newName, removeData ) {
    var val;
    return this.each(function() {
      val = jQuery.attr( this, name );
      jQuery.attr( this, newName, val );
      jQuery.removeAttr( this, name );
      // remove original data
      if (removeData !== false){
        jQuery.removeData( this, name.replace('data-','') );
      }
    });
  }
});

// $(selector).renameAttr(original-attr, new-attr, removeData);
 
// removeData flag is true by default
$('#test').renameAttr('data-test', 'data-new' );
 
// removeData flag set to false will not remove the
// .data("test") value
$('#test').renameAttr('data-test', 'data-new', false );

我不写这个.但我测试的是JQ 1.10.该代码来自链接.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有