Fixed an issue with parentNode being accessed in attr() on disconnected DOM elements.

This commit is contained in:
John Resig 2009-01-12 14:00:35 +00:00
parent af1b9994a4
commit 0c97178553
2 changed files with 4 additions and 2 deletions

View file

@ -961,7 +961,7 @@ jQuery.extend({
// Safari mis-reports the default selected property of a hidden option
// Accessing the parent's selectedIndex property fixes it
if ( name == "selected" )
if ( name == "selected" && elem.parentNode )
elem.parentNode.selectedIndex;
// If applicable, access the attribute via the DOM 0 way

View file

@ -383,7 +383,7 @@ test("index(Object)", function() {
});
test("attr(String)", function() {
expect(26);
expect(27);
equals( jQuery('#text1').attr('value'), "Test", 'Check for value attribute' );
equals( jQuery('#text1').attr('value', "Test2").attr('defaultValue'), "Test", 'Check for defaultValue attribute' );
equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' );
@ -407,6 +407,8 @@ test("attr(String)", function() {
jQuery('<a id="tAnchor5"></a>').attr('href', '#5').appendTo('#main'); // using innerHTML in IE causes href attribute to be serialized to the full path
equals( jQuery('#tAnchor5').attr('href'), "#5", 'Check for non-absolute href (an anchor)' );
equals( jQuery("<option/>").attr("selected"), false, "Check selected attribute on disconnected element." );
// Related to [5574] and [5683]
var body = document.body, $body = jQuery(body);