在jQuery中removeAttr(x)与attr(x,'')

Joe*_*Fan 8 jquery

jQuery removeAttr(x)attr(x, '')jQuery 之间通常有区别吗?

如果是这样,何时使用每一个?

Joh*_*nFx 9

鉴于从jQuery库中删除了removeAttr(见下文).我会说是的.

removeAttr: function( name, fn ) {
        return this.each(function(){
            jQuery.attr( this, name, "" );
            if ( this.nodeType === 1 ) {
                this.removeAttribute( name );
            }
        });
Run Code Online (Sandbox Code Playgroud)

来源:Jquery 1.4.3未压缩版本

虽然它本质上是主观的.我认为使用removeAttr是一种更自我记录的方法.但是,我可以看到其他人正在思考相反的情况.

  • 它们是不同的,通过这个代码 - 对于元素,它将attr设置为''*AND*(对于元素)从DOM中删除属性. (3认同)

Orb*_*ing 6

它们是完全不同的操作:

attr(x,'')将属性设置为空字符串

如果可能,removeAttr(x)将删除对象上的属性,或者删除它并将其重置为默认值(如果它由该对象类的DTD定义).