From abcc1a76ee2a6733177b2cd104bc32cee5443ec4 Mon Sep 17 00:00:00 2001 From: jeresig Date: Sat, 13 Feb 2010 02:23:38 -0500 Subject: [PATCH] If .attr() is run on no elements undefined should be returned (as should be the case when no attribute is found). Fixes #6012. --- src/core.js | 2 +- test/unit/attributes.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core.js b/src/core.js index 9fa311d506..ba5d7f5288 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 234d586220..c5700adda9 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 ) {