File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -640,7 +640,8 @@ forEach({
640640 attr : function ( element , name , value ) {
641641 var ret ;
642642 var nodeType = element . nodeType ;
643- if ( nodeType === NODE_TYPE_TEXT || nodeType === NODE_TYPE_ATTRIBUTE || nodeType === NODE_TYPE_COMMENT ) {
643+ if ( nodeType === NODE_TYPE_TEXT || nodeType === NODE_TYPE_ATTRIBUTE || nodeType === NODE_TYPE_COMMENT ||
644+ ! element . getAttribute ) {
644645 return ;
645646 }
646647
@@ -655,7 +656,7 @@ forEach({
655656 } else {
656657 element . setAttribute ( name , isBooleanAttr ? lowercasedName : value ) ;
657658 }
658- } else if ( element . getAttribute ) {
659+ } else {
659660 // getter
660661
661662 ret = element . getAttribute ( name ) ;
Original file line number Diff line number Diff line change @@ -751,6 +751,17 @@ describe('jqLite', function() {
751751 elm . attr ( 'multiple' , '' ) ;
752752 expect ( elm [ 0 ] . getAttribute ( 'multiple' ) ) . toBe ( 'multiple' ) ;
753753 } ) ;
754+
755+ it ( 'should not fail on elements without the getAttribute method' , function ( ) {
756+ forEach ( [ window , document ] , function ( node ) {
757+ expect ( function ( ) {
758+ var elem = jqLite ( node ) ;
759+ elem . attr ( 'foo' ) ;
760+ elem . attr ( 'bar' , 'baz' ) ;
761+ elem . attr ( 'bar' ) ;
762+ } ) . not . toThrow ( ) ;
763+ } ) ;
764+ } ) ;
754765 } ) ;
755766
756767
You can’t perform that action at this time.
0 commit comments