Bug Tracker

Ticket #2453 (closed bug: fixed)

Opened 1 year ago

Last modified 1 year ago

attr(...) function returns undefined when value is 0

Reported by: gtong Assigned to: anonymous
Type: bug Priority: major
Milestone: 1.2.4 Component: core
Version: 1.2.3 Keywords:
Cc: Needs: Review

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

Change History

Changed 1 year ago by flesler

  • status changed from new to closed
  • resolution set to fixed

Fixed at [5574], check #2548.

Note: See TracTickets for help on using tickets.