Fix #11962. Standardize getter return values for empty sets.

This commit is contained in:
Uri Gilad 2012-07-09 23:06:51 -04:00 committed by Dave Methvin
parent 376f4e8cf6
commit 21b0db7993
4 changed files with 14 additions and 3 deletions

View File

@ -225,7 +225,7 @@ jQuery.fn.extend({
if ( value === undefined ) {
return elem.nodeType === 1 ?
elem.innerHTML.replace( rinlinejQuery, "" ) :
null;
undefined;
}
// See if we can take a shortcut and just use innerHTML

View File

@ -14,7 +14,7 @@ jQuery.fn.offset = function( options ) {
doc = elem && elem.ownerDocument;
if ( !doc ) {
return null;
return;
}
if ( (body = doc.body) === elem ) {
@ -103,7 +103,7 @@ jQuery.fn.extend({
position: function() {
if ( !this[0] ) {
return null;
return;
}
var elem = this[0],

View File

@ -1351,6 +1351,11 @@ test("html(undefined)", function() {
equal( jQuery("#foo").html("<i>test</i>").html(undefined).html().toLowerCase(), "<i>test</i>", ".html(undefined) is chainable (#5571)" );
});
test("html() on empty set", function() {
expect(1);
strictEqual( jQuery( ).html(), undefined, ".html() returns undefined for empty sets (#11962)" );
});
var testHtml = function(valueObj) {
expect(35);

View File

@ -9,6 +9,12 @@ module("offset", { teardown: moduleTeardown });
the iframe window and the "jQuery" symbol is used to access any static methods.
*/
test("empty set", function() {
expect(2);
strictEqual( jQuery( ).offset(), undefined, "offset() returns undefined for empty set (#11962)" );
strictEqual( jQuery( ).position(), undefined, "position() returns undefined for empty set (#11962)" );
});
test("disconnected node", function() {
expect(2);