@@ -71,16 +71,16 @@ test( "attr(String)", function() {
71
71
equal ( jQuery ( "#text1" ) . attr ( "value" , "" ) . attr ( "value" ) , "" , "Check setting the value attribute to empty string" ) ;
72
72
equal ( jQuery ( "<div value='t'></div>" ) . attr ( "value" ) , "t" , "Check setting custom attr named 'value' on a div" ) ;
73
73
equal ( jQuery ( "#form" ) . attr ( "blah" , "blah" ) . attr ( "blah" ) , "blah" , "Set non-existent attribute on a form" ) ;
74
- equal ( jQuery ( "#foo" ) . attr ( "height" ) , null , "Non existent height attribute should return null " ) ;
74
+ equal ( jQuery ( "#foo" ) . attr ( "height" ) , undefined , "Non existent height attribute should return undefined " ) ;
75
75
76
76
// [7472] & [3113] (form contains an input with name="action" or name="id")
77
77
extras = jQuery ( "<input id='id' name='id' /><input id='name' name='name' /><input id='target' name='target' />" ) . appendTo ( "#testForm" ) ;
78
78
equal ( jQuery ( "#form" ) . attr ( "action" , "newformaction" ) . attr ( "action" ) , "newformaction" , "Check that action attribute was changed" ) ;
79
- equal ( jQuery ( "#testForm" ) . attr ( "target" ) , null , "Retrieving target does not equal the input with name=target" ) ;
79
+ equal ( jQuery ( "#testForm" ) . attr ( "target" ) , undefined , "Retrieving target does not equal the input with name=target" ) ;
80
80
equal ( jQuery ( "#testForm" ) . attr ( "target" , "newTarget" ) . attr ( "target" ) , "newTarget" , "Set target successfully on a form" ) ;
81
- equal ( jQuery ( "#testForm" ) . removeAttr ( "id" ) . attr ( "id" ) , null , "Retrieving id does not equal the input with name=id after id is removed [#7472]" ) ;
81
+ equal ( jQuery ( "#testForm" ) . removeAttr ( "id" ) . attr ( "id" ) , undefined , "Retrieving id does not equal the input with name=id after id is removed [#7472]" ) ;
82
82
// Bug #3685 (form contains input with name="name")
83
- equal ( jQuery ( "#testForm" ) . attr ( "name" ) , null , "Retrieving name does not retrieve input with name=name" ) ;
83
+ equal ( jQuery ( "#testForm" ) . attr ( "name" ) , undefined , "Retrieving name does not retrieve input with name=name" ) ;
84
84
extras . remove ( ) ;
85
85
86
86
equal ( jQuery ( "#text1" ) . attr ( "maxlength" ) , "30" , "Check for maxlength attribute" ) ;
@@ -107,7 +107,7 @@ test( "attr(String)", function() {
107
107
body = document . body ;
108
108
$body = jQuery ( body ) ;
109
109
110
- strictEqual ( $body . attr ( "foo" ) , null , "Make sure that a non existent attribute returns null " ) ;
110
+ strictEqual ( $body . attr ( "foo" ) , undefined , "Make sure that a non existent attribute returns undefined " ) ;
111
111
112
112
body . setAttribute ( "foo" , "baz" ) ;
113
113
equal ( $body . attr ( "foo" ) , "baz" , "Make sure the dom attribute is retrieved when no expando is found" ) ;
@@ -139,12 +139,12 @@ test( "attr(String)", function() {
139
139
140
140
// Check value on button element (#1954)
141
141
$button = jQuery ( "<button>text</button>" ) . insertAfter ( "#button" ) ;
142
- strictEqual ( $button . attr ( "value" ) , null , "Absence of value attribute on a button" ) ;
142
+ strictEqual ( $button . attr ( "value" ) , undefined , "Absence of value attribute on a button" ) ;
143
143
equal ( $button . attr ( "value" , "foobar" ) . attr ( "value" ) , "foobar" , "Value attribute on a button does not return innerHTML" ) ;
144
144
equal ( $button . attr ( "value" , "baz" ) . html ( ) , "text" , "Setting the value attribute does not change innerHTML" ) ;
145
145
146
146
// Attributes with a colon on a table element (#1591)
147
- equal ( jQuery ( "#table" ) . attr ( "test:attrib" ) , null , "Retrieving a non-existent attribute on a table with a colon does not throw an error." ) ;
147
+ equal ( jQuery ( "#table" ) . attr ( "test:attrib" ) , undefined , "Retrieving a non-existent attribute on a table with a colon does not throw an error." ) ;
148
148
equal ( jQuery ( "#table" ) . attr ( "test:attrib" , "foobar" ) . attr ( "test:attrib" ) , "foobar" , "Setting an attribute on a table with a colon does not throw an error." ) ;
149
149
150
150
$form = jQuery ( "<form class='something'></form>" ) . appendTo ( "#qunit-fixture" ) ;
@@ -153,12 +153,12 @@ test( "attr(String)", function() {
153
153
$a = jQuery ( "<a href='#' onclick='something()'>Click</a>" ) . appendTo ( "#qunit-fixture" ) ;
154
154
equal ( $a . attr ( "onclick" ) , "something()" , "Retrieve ^on attribute without anonymous function wrapper." ) ;
155
155
156
- ok ( jQuery ( "<div/>" ) . attr ( "doesntexist" ) === null , "Make sure null is returned when no attribute is found." ) ;
157
- ok ( jQuery ( "<div/>" ) . attr ( "title" ) === null , "Make sure null is returned when no attribute is found." ) ;
156
+ ok ( jQuery ( "<div/>" ) . attr ( "doesntexist" ) === undefined , "Make sure undefined is returned when no attribute is found." ) ;
157
+ ok ( jQuery ( "<div/>" ) . attr ( "title" ) === undefined , "Make sure undefined is returned when no attribute is found." ) ;
158
158
equal ( jQuery ( "<div/>" ) . attr ( "title" , "something" ) . attr ( "title" ) , "something" , "Set the title attribute." ) ;
159
159
ok ( jQuery ( ) . attr ( "doesntexist" ) === undefined , "Make sure undefined is returned when no element is there." ) ;
160
- equal ( jQuery ( "<div/>" ) . attr ( "value" ) , null , "An unset value on a div returns null ." ) ;
161
- strictEqual ( jQuery ( "<select><option value='property'></option></select>" ) . attr ( "value" ) , null , "An unset value on a select returns null ." ) ;
160
+ equal ( jQuery ( "<div/>" ) . attr ( "value" ) , undefined , "An unset value on a div returns undefined ." ) ;
161
+ strictEqual ( jQuery ( "<select><option value='property'></option></select>" ) . attr ( "value" ) , undefined , "An unset value on a select returns undefined ." ) ;
162
162
163
163
$form = jQuery ( "#form" ) . attr ( "enctype" , "multipart/form-data" ) ;
164
164
equal ( $form . prop ( "enctype" ) , "multipart/form-data" , "Set the enctype of a form (encoding in IE6/7 #6743)" ) ;
@@ -280,7 +280,7 @@ test( "attr(String, Object)", function() {
280
280
jQuery ( "#name" ) . attr ( "name" , "something" ) ;
281
281
equal ( jQuery ( "#name" ) . attr ( "name" ) , "something" , "Set name attribute" ) ;
282
282
jQuery ( "#name" ) . attr ( "name" , null ) ;
283
- equal ( jQuery ( "#name" ) . attr ( "name" ) , null , "Remove name attribute" ) ;
283
+ equal ( jQuery ( "#name" ) . attr ( "name" ) , undefined , "Remove name attribute" ) ;
284
284
285
285
$input = jQuery ( "<input>" , {
286
286
name : "something" ,
@@ -301,17 +301,17 @@ test( "attr(String, Object)", function() {
301
301
$input . prop ( "checked" , true ) . prop ( "checked" , false ) . attr ( "checked" , true ) ;
302
302
equal ( $input . attr ( "checked" ) , "checked" , "Set checked (verified by .attr)" ) ;
303
303
$input . prop ( "checked" , false ) . prop ( "checked" , true ) . attr ( "checked" , false ) ;
304
- equal ( $input . attr ( "checked" ) , null , "Remove checked (verified by .attr)" ) ;
304
+ equal ( $input . attr ( "checked" ) , undefined , "Remove checked (verified by .attr)" ) ;
305
305
306
306
$input = jQuery ( "#text1" ) . prop ( "readOnly" , true ) . prop ( "readOnly" , false ) . attr ( "readonly" , true ) ;
307
307
equal ( $input . attr ( "readonly" ) , "readonly" , "Set readonly (verified by .attr)" ) ;
308
308
$input . prop ( "readOnly" , false ) . prop ( "readOnly" , true ) . attr ( "readonly" , false ) ;
309
- equal ( $input . attr ( "readonly" ) , null , "Remove readonly (verified by .attr)" ) ;
309
+ equal ( $input . attr ( "readonly" ) , undefined , "Remove readonly (verified by .attr)" ) ;
310
310
311
311
$input = jQuery ( "#check2" ) . attr ( "checked" , true ) . attr ( "checked" , false ) . prop ( "checked" , true ) ;
312
312
equal ( $input [ 0 ] . checked , true , "Set checked property (verified by native property)" ) ;
313
313
equal ( $input . prop ( "checked" ) , true , "Set checked property (verified by .prop)" ) ;
314
- equal ( $input . attr ( "checked" ) , null , "Setting checked property doesn't affect checked attribute" ) ;
314
+ equal ( $input . attr ( "checked" ) , undefined , "Setting checked property doesn't affect checked attribute" ) ;
315
315
$input . attr ( "checked" , false ) . attr ( "checked" , true ) . prop ( "checked" , false ) ;
316
316
equal ( $input [ 0 ] . checked , false , "Clear checked property (verified by native property)" ) ;
317
317
equal ( $input . prop ( "checked" ) , false , "Clear checked property (verified by .prop)" ) ;
@@ -343,13 +343,13 @@ test( "attr(String, Object)", function() {
343
343
"required" : true
344
344
} ) ;
345
345
equal ( $text . attr ( "autofocus" ) , "autofocus" , "Reading autofocus attribute yields 'autofocus'" ) ;
346
- equal ( $text . attr ( "autofocus" , false ) . attr ( "autofocus" ) , null , "Setting autofocus to false removes it" ) ;
346
+ equal ( $text . attr ( "autofocus" , false ) . attr ( "autofocus" ) , undefined , "Setting autofocus to false removes it" ) ;
347
347
equal ( $text . attr ( "required" ) , "required" , "Reading required attribute yields 'required'" ) ;
348
- equal ( $text . attr ( "required" , false ) . attr ( "required" ) , null , "Setting required attribute to false removes it" ) ;
348
+ equal ( $text . attr ( "required" , false ) . attr ( "required" ) , undefined , "Setting required attribute to false removes it" ) ;
349
349
350
350
$details = jQuery ( "<details open></details>" ) . appendTo ( "#qunit-fixture" ) ;
351
351
equal ( $details . attr ( "open" ) , "open" , "open attribute presence indicates true" ) ;
352
- equal ( $details . attr ( "open" , false ) . attr ( "open" ) , null , "Setting open attribute to false removes it" ) ;
352
+ equal ( $details . attr ( "open" , false ) . attr ( "open" ) , undefined , "Setting open attribute to false removes it" ) ;
353
353
354
354
$text . attr ( "data-something" , true ) ;
355
355
equal ( $text . attr ( "data-something" ) , "true" , "Set data attributes" ) ;
@@ -377,17 +377,8 @@ test( "attr(String, Object)", function() {
377
377
jQuery . each ( [ window , document , obj , "#firstp" ] , function ( i , elem ) {
378
378
var oldVal = elem . nonexisting ,
379
379
$elem = jQuery ( elem ) ;
380
- // Falls back to prop, which returns undefined
381
- strictEqual (
382
- $elem . attr ( "nonexisting" ) ,
383
- typeof $elem [ 0 ] . getAttribute === "undefined" ? undefined : null ,
384
- "attr works correctly for non existing attributes (bug #7500)."
385
- ) ;
386
- equal (
387
- $elem . attr ( "nonexisting" , "foo" ) . attr ( "nonexisting" ) ,
388
- "foo" ,
389
- "attr falls back to prop on unsupported arguments"
390
- ) ;
380
+ strictEqual ( $elem . attr ( "nonexisting" ) , undefined , "attr works correctly for non existing attributes (bug #7500)." ) ;
381
+ equal ( $elem . attr ( "nonexisting" , "foo" ) . attr ( "nonexisting" ) , "foo" , "attr falls back to prop on unsupported arguments" ) ;
391
382
elem . nonexisting = oldVal ;
392
383
} ) ;
393
384
@@ -403,7 +394,7 @@ test( "attr(String, Object)", function() {
403
394
table . attr ( "cellspacing" , "2" ) ;
404
395
equal ( table [ 0 ] [ "cellSpacing" ] , "2" , "Check cellspacing is correctly set" ) ;
405
396
406
- equal ( jQuery ( "#area1" ) . attr ( "value" ) , null , "Value attribute is distinct from value property." ) ;
397
+ equal ( jQuery ( "#area1" ) . attr ( "value" ) , undefined , "Value attribute is distinct from value property." ) ;
407
398
408
399
// for #1070
409
400
jQuery ( "#name" ) . attr ( "someAttr" , "0" ) ;
@@ -477,7 +468,7 @@ test( "attr(String, Object)", function() {
477
468
jQuery ( "#name" ) . attr ( "maxlength" , "5" ) . removeAttr ( "nonexisting" ) ;
478
469
equal ( typeof jQuery ( "#name" ) . attr ( "maxlength" , undefined ) , "object" , ".attr('attribute', undefined) is chainable (#5571)" ) ;
479
470
equal ( jQuery ( "#name" ) . attr ( "maxlength" , undefined ) . attr ( "maxlength" ) , "5" , ".attr('attribute', undefined) does not change value (#5571)" ) ;
480
- equal ( jQuery ( "#name" ) . attr ( "nonexisting" , undefined ) . attr ( "nonexisting" ) , null , ".attr('attribute', undefined) does not create attribute (#5571)" ) ;
471
+ equal ( jQuery ( "#name" ) . attr ( "nonexisting" , undefined ) . attr ( "nonexisting" ) , undefined , ".attr('attribute', undefined) does not create attribute (#5571)" ) ;
481
472
} ) ;
482
473
483
474
test ( "attr - extending the boolean attrHandle" , function ( ) {
@@ -513,23 +504,23 @@ test( "attr(String, Object) - Loaded via XML fragment", function() {
513
504
$frag . attr ( "test" , "some value" ) ;
514
505
equal ( $frag . attr ( "test" ) , "some value" , "set attribute" ) ;
515
506
$frag . attr ( "test" , null ) ;
516
- equal ( $frag . attr ( "test" ) , null , "remove attribute" ) ;
507
+ equal ( $frag . attr ( "test" ) , undefined , "remove attribute" ) ;
517
508
} ) ;
518
509
519
510
test ( "attr('tabindex')" , function ( ) {
520
511
expect ( 8 ) ;
521
512
522
513
// elements not natively tabbable
523
514
equal ( jQuery ( "#listWithTabIndex" ) . attr ( "tabindex" ) , "5" , "not natively tabbable, with tabindex set to 0" ) ;
524
- equal ( jQuery ( "#divWithNoTabIndex" ) . attr ( "tabindex" ) , null , "not natively tabbable, no tabindex set" ) ;
515
+ equal ( jQuery ( "#divWithNoTabIndex" ) . attr ( "tabindex" ) , undefined , "not natively tabbable, no tabindex set" ) ;
525
516
526
517
// anchor with href
527
- equal ( jQuery ( "#linkWithNoTabIndex" ) . attr ( "tabindex" ) , null , "anchor with href, no tabindex set" ) ;
518
+ equal ( jQuery ( "#linkWithNoTabIndex" ) . attr ( "tabindex" ) , undefined , "anchor with href, no tabindex set" ) ;
528
519
equal ( jQuery ( "#linkWithTabIndex" ) . attr ( "tabindex" ) , "2" , "anchor with href, tabindex set to 2" ) ;
529
520
equal ( jQuery ( "#linkWithNegativeTabIndex" ) . attr ( "tabindex" ) , "-1" , "anchor with href, tabindex set to -1" ) ;
530
521
531
522
// anchor without href
532
- equal ( jQuery ( "#linkWithNoHrefWithNoTabIndex" ) . attr ( "tabindex" ) , null , "anchor without href, no tabindex set" ) ;
523
+ equal ( jQuery ( "#linkWithNoHrefWithNoTabIndex" ) . attr ( "tabindex" ) , undefined , "anchor without href, no tabindex set" ) ;
533
524
equal ( jQuery ( "#linkWithNoHrefWithTabIndex" ) . attr ( "tabindex" ) , "1" , "anchor without href, tabindex set to 2" ) ;
534
525
equal ( jQuery ( "#linkWithNoHrefWithNegativeTabIndex" ) . attr ( "tabindex" ) , "-1" , "anchor without href, no tabindex set" ) ;
535
526
} ) ;
@@ -538,7 +529,7 @@ test( "attr('tabindex', value)", function() {
538
529
expect ( 9 ) ;
539
530
540
531
var element = jQuery ( "#divWithNoTabIndex" ) ;
541
- equal ( element . attr ( "tabindex" ) , null , "start with no tabindex" ) ;
532
+ equal ( element . attr ( "tabindex" ) , undefined , "start with no tabindex" ) ;
542
533
543
534
// set a positive string
544
535
element . attr ( "tabindex" , "1" ) ;
@@ -575,10 +566,10 @@ test( "removeAttr(String)", function() {
575
566
expect ( 12 ) ;
576
567
var $first ;
577
568
578
- equal ( jQuery ( "#mark" ) . removeAttr ( "class" ) . attr ( "class" ) , null , "remove class" ) ;
579
- equal ( jQuery ( "#form" ) . removeAttr ( "id" ) . attr ( "id" ) , null , "Remove id" ) ;
580
- equal ( jQuery ( "#foo" ) . attr ( "style" , "position:absolute;" ) . removeAttr ( "style" ) . attr ( "style" ) , null , "Check removing style attribute" ) ;
581
- equal ( jQuery ( "#form" ) . attr ( "style" , "position:absolute;" ) . removeAttr ( "style" ) . attr ( "style" ) , null , "Check removing style attribute on a form" ) ;
569
+ equal ( jQuery ( "#mark" ) . removeAttr ( "class" ) . attr ( "class" ) , undefined , "remove class" ) ;
570
+ equal ( jQuery ( "#form" ) . removeAttr ( "id" ) . attr ( "id" ) , undefined , "Remove id" ) ;
571
+ equal ( jQuery ( "#foo" ) . attr ( "style" , "position:absolute;" ) . removeAttr ( "style" ) . attr ( "style" ) , undefined , "Check removing style attribute" ) ;
572
+ equal ( jQuery ( "#form" ) . attr ( "style" , "position:absolute;" ) . removeAttr ( "style" ) . attr ( "style" ) , undefined , "Check removing style attribute on a form" ) ;
582
573
equal ( jQuery ( "<div style='position: absolute'></div>" ) . appendTo ( "#foo" ) . removeAttr ( "style" ) . prop ( "style" ) . cssText , "" , "Check removing style attribute (#9699 Webkit)" ) ;
583
574
equal ( jQuery ( "#fx-test-group" ) . attr ( "height" , "3px" ) . removeAttr ( "height" ) . get ( 0 ) . style . height , "1px" , "Removing height attribute has no effect on height set with style attribute" ) ;
584
575
@@ -592,15 +583,15 @@ test( "removeAttr(String)", function() {
592
583
593
584
try {
594
585
$first = jQuery ( "#first" ) . attr ( "contenteditable" , "true" ) . removeAttr ( "contenteditable" ) ;
595
- equal ( $first . attr ( "contenteditable" ) , null , "Remove the contenteditable attribute" ) ;
586
+ equal ( $first . attr ( "contenteditable" ) , undefined , "Remove the contenteditable attribute" ) ;
596
587
} catch ( e ) {
597
588
ok ( false , "Removing contenteditable threw an error (#10429)" ) ;
598
589
}
599
590
600
591
$first = jQuery ( "<div Case='mixed'></div>" ) ;
601
592
equal ( $first . attr ( "Case" ) , "mixed" , "case of attribute doesn't matter" ) ;
602
593
$first . removeAttr ( "Case" ) ;
603
- equal ( $first . attr ( "Case" ) , null , "mixed-case attribute was removed" ) ;
594
+ equal ( $first . attr ( "Case" ) , undefined , "mixed-case attribute was removed" ) ;
604
595
} ) ;
605
596
606
597
test ( "removeAttr(String) in XML" , function ( ) {
@@ -612,14 +603,14 @@ test( "removeAttr(String) in XML", function() {
612
603
iwt . removeAttr ( "Normal" ) ;
613
604
equal ( iwt . attr ( "normal" ) , "ab" , "Should still be there" ) ;
614
605
iwt . removeAttr ( "normal" ) ;
615
- equal ( iwt . attr ( "normal" ) , null , "Removed" ) ;
606
+ equal ( iwt . attr ( "normal" ) , undefined , "Removed" ) ;
616
607
617
608
equal ( iwt . attr ( "mixedCase" ) , "yes" , "Check initial value" ) ;
618
- equal ( iwt . attr ( "mixedcase" ) , null , "toLowerCase not work good" ) ;
609
+ equal ( iwt . attr ( "mixedcase" ) , undefined , "toLowerCase not work good" ) ;
619
610
iwt . removeAttr ( "mixedcase" ) ;
620
611
equal ( iwt . attr ( "mixedCase" ) , "yes" , "Should still be there" ) ;
621
612
iwt . removeAttr ( "mixedCase" ) ;
622
- equal ( iwt . attr ( "mixedCase" ) , null , "Removed" ) ;
613
+ equal ( iwt . attr ( "mixedCase" ) , undefined , "Removed" ) ;
623
614
} ) ;
624
615
625
616
test ( "removeAttr(Multi String, variable space width)" , function ( ) {
@@ -640,7 +631,7 @@ test( "removeAttr(Multi String, variable space width)", function() {
640
631
div . removeAttr ( "id alt title rel " ) ;
641
632
642
633
jQuery . each ( tests , function ( key ) {
643
- equal ( div . attr ( key ) , null , "Attribute `" + key + "` was removed" ) ;
634
+ equal ( div . attr ( key ) , undefined , "Attribute `" + key + "` was removed" ) ;
644
635
} ) ;
645
636
} ) ;
646
637
@@ -1171,7 +1162,7 @@ var testRemoveClass = function(valueObj) {
1171
1162
1172
1163
1173
1164
jQuery ( div ) . removeClass ( valueObj ( "foo" ) ) ;
1174
- strictEqual ( jQuery ( div ) . attr ( "class" ) , null , "removeClass doesn't create a class attribute" ) ;
1165
+ strictEqual ( jQuery ( div ) . attr ( "class" ) , undefined , "removeClass doesn't create a class attribute" ) ;
1175
1166
1176
1167
div . className = " test foo " ;
1177
1168
0 commit comments