diff --git a/index.js b/index.js
index 5fe8e82..c871474 100644
--- a/index.js
+++ b/index.js
@@ -250,6 +250,12 @@ function unescFn(ent, hex, num) {
return num ? String.fromCharCode(parseInt(num, hex === "" ? 10 : 16)) : unescMap[ent] || ent
}
+;["hasAttribute", "getAttribute", "setAttribute", "removeAttribute"].forEach(function(name) {
+ Element[name + "NS"] = function(ns, a, b) {
+ return this[name].call(this, a, b)
+ }
+})
+
function Attr(node, name) {
this.ownerElement = node
@@ -321,9 +327,6 @@ extendNode(HTMLElement, Element, {
localName: null,
tagName: null,
styleMap: null,
- setAttributeNS: function (namespace, name, value) {
- this.setAttribute(name, value)
- },
focus: function() {
this.ownerDocument.activeElement = this
},
diff --git a/test/index-spec.js b/test/index-spec.js
index 51ec498..ac7d961 100644
--- a/test/index-spec.js
+++ b/test/index-spec.js
@@ -76,8 +76,13 @@ describe("DOM lite", function() {
it("can set attributes with namespace", function (assert) {
var el = document.createElementNS(null, "use")
+ assert.equal(el.getAttributeNS(null, "xlink:ref"), null)
el.setAttributeNS(null, "xlink:ref", "http://localhost")
assert.equal("" + el, '')
+ assert.equal(el.hasAttributeNS(null, "xlink:ref"), true)
+ el.removeAttributeNS(null, "xlink:ref", "http://localhost")
+ assert.equal("" + el, '')
+ assert.equal(el.hasAttributeNS(null, "xlink:ref"), false)
assert.end()
})