diff options
| -rw-r--r-- | src/jqLite.js | 8 | ||||
| -rw-r--r-- | test/jqLiteSpec.js | 9 | 
2 files changed, 16 insertions, 1 deletions
diff --git a/src/jqLite.js b/src/jqLite.js index cb761294..ce9e612e 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -245,7 +245,13 @@ forEach({    },    attr: function(element, name, value){ -    if (SPECIAL_ATTR[name]) { +    if (name === 'class') { +      if(isDefined(value)) { +        element.className = value; +      } else { +        return element.className; +      } +    } else if (SPECIAL_ATTR[name]) {        if (isDefined(value)) {          element[name] = !!value;        } else { diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index c06fcae4..b75289bb 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -168,6 +168,15 @@ describe('jqLite', function(){        var elm = jqLite('<div class="any">a</div>');        expect(elm.attr('non-existing')).toBeUndefined();      }); + +    it('should special-case "class" attribute', function() { +      // stupid IE9 returns null for element.getAttribute('class') when element has ng:class attr +      var elm = jqLite('<div class=" any " ng:class="dynCls">a</div>'); +      expect(elm.attr('class')).toBe(' any '); + +      elm.attr('class', 'foo  bar'); +      expect(elm.attr('class')).toBe('foo  bar'); +    });    });  | 
