jQuery 1.3 - 设置属性值的问题

Dan*_*gby 1 javascript jquery attributes

这是我的第一个stackoverflow问题,所以尽量做好.;-D

我的问题是,我正在重构一些现有的javascript代码并使用jQuery来完成它.在几个地方,我遇到类似于以下的javascript代码:

// some js code working with the customAttribute value
javascriptElementObject.customAttribue = void(0);
Run Code Online (Sandbox Code Playgroud)

javascriptElementObject现在是一个jQuery对象,我一直在尝试使用以下代码执行相同的操作:

// some js code working with the customAttribute value
javascriptElementObject.attr("customAttribute", void(0));
Run Code Online (Sandbox Code Playgroud)

但是,这似乎没有做任何事情.但是,以下代码有效:

javascriptElementObject.get(0).customAttribute = void(0);
Run Code Online (Sandbox Code Playgroud)

我知道jQuery的removeAttr()函数,但到目前为止还没有使用它,因为我不知道它是否等同于将属性值设置为void(0).

所以我想这真的意味着我有两个问题:

  1. 为什么第一个jQuery版本不起作用?
  2. 是.get(0).customAttribue = void(0); 和.removeAttr("customAttribute";等效?

谢谢.

meo*_*ouw 6

jQuery喜欢重载它的方法,所以:

obj.attr( name ) //retrieves the attribute value
obj.attr( name, value ) //sets the attribute

obj.attr( name, void(0) ) == obj.attr( name, null ) == obj.attr( name ) //i.e retrieving the attribute
Run Code Online (Sandbox Code Playgroud)

如果要设置空属性,可能需要尝试以下操作

obj.attr( name, '' )
Run Code Online (Sandbox Code Playgroud)

这也适用于其他方法jQuery.html(),例如