From: jeresig Date: Sat, 13 Feb 2010 07:23:38 +0000 (-0500) Subject: If .attr() is run on no elements undefined should be returned (as should be the case... X-Git-Tag: 1.4.2~15 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=abcc1a76ee2a6733177b2cd104bc32cee5443ec4;p=jquery.git If .attr() is run on no elements undefined should be returned (as should be the case when no attribute is found). Fixes #6012. --- diff --git a/src/core.js b/src/core.js index 9fa311d50..ba5d7f528 100644 --- a/src/core.js +++ b/src/core.js @@ -799,7 +799,7 @@ function access( elems, key, value, exec, fn, pass ) { } // Getting an attribute - return length ? fn( elems[0], key ) : null; + return length ? fn( elems[0], key ) : undefined; } function now() { diff --git a/test/unit/attributes.js b/test/unit/attributes.js index 234d58622..c5700adda 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -4,7 +4,7 @@ var bareObj = function(value) { return value; }; var functionReturningObj = function(value) { return (function() { return value; }); }; test("attr(String)", function() { - expect(28); + expect(30); // This one sometimes fails randomly ?! equals( jQuery('#text1').attr('value'), "Test", 'Check for value attribute' ); @@ -61,6 +61,9 @@ test("attr(String)", function() { select.appendChild( optgroup ); equals( jQuery(option).attr("selected"), true, "Make sure that a single option is selected, even when in an optgroup." ); + + ok( jQuery("
").attr("doesntexist") === undefined, "Make sure undefined is returned when no attribute is found." ); + ok( jQuery().attr("doesntexist") === undefined, "Make sure undefined is returned when no element is there." ); }); if ( !isLocal ) {