Side navigation
#2453 closed bug (fixed)
Opened March 03, 2008 10:28PM UTC
Closed May 13, 2008 12:38AM UTC
attr(...) function returns undefined when value is 0
Reported by: | gtong | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 1.2.4 |
Component: | core | Version: | 1.2.3 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
The jQuery attribute function returns undefined if the value of the attribute is 0. The HTML code below returns undefined if you select "Foo", but 1 if you select "Bar"
<select id="foo" onChange="alert($('#foo').attr('selectedIndex'))">
<option value="Foo">Foo</option>
<option value="Bar" selected>Bar</option>
</select>
This is because of the following line (in jQuery 1.2.3 line # 178)
return this.length && jQuery[ type || "attr" ]( this[0], name ) || undefined;
The problem here is that the return value of the attr call is 0, which is evaluated as false, and thus passes to the || and returns undefined.
one possible way to fix this is:
if ( this.length ){
var ret = jQuery[ type || "attr" ]( this[0], name );
return ret === 0 ? 0 : (ret || undefined);
} else
return undefined;
Attachments (0)
Change History (1)
Changed May 13, 2008 12:38AM UTC by comment:1
resolution: | → fixed |
---|---|
status: | new → closed |
Fixed at [5574], check #2548.