| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>Element.prototype.removeAttribute</title> | |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-element-removeattribute"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| "use strict"; | |
| test(() => { | |
| const el = document.createElement("p"); | |
| el.setAttribute("x", "first"); | |
| el.setAttributeNS("foo", "x", "second"); | |
| assert_equals(el.attributes.length, 2); | |
| assert_equals(el.getAttribute("x"), "first"); | |
| assert_equals(el.getAttributeNS(null, "x"), "first"); | |
| assert_equals(el.getAttributeNS("foo", "x"), "second"); | |
| // removeAttribute removes the first attribute with name "x" that | |
| // we set on the element, irrespective of namespace. | |
| el.removeAttribute("x"); | |
| // The only attribute remaining should be the second one. | |
| assert_equals(el.getAttribute("x"), "second"); | |
| assert_equals(el.getAttributeNS(null, "x"), null); | |
| assert_equals(el.getAttributeNS("foo", "x"), "second"); | |
| assert_equals(el.attributes.length, 1, "one attribute"); | |
| }, "removeAttribute should remove the first attribute, irrespective of namespace, when the first attribute is " + | |
| "not in a namespace"); | |
| test(() => { | |
| const el = document.createElement("p"); | |
| el.setAttributeNS("foo", "x", "first"); | |
| el.setAttributeNS("foo2", "x", "second"); | |
| assert_equals(el.attributes.length, 2); | |
| assert_equals(el.getAttribute("x"), "first"); | |
| assert_equals(el.getAttributeNS("foo", "x"), "first"); | |
| assert_equals(el.getAttributeNS("foo2", "x"), "second"); | |
| // removeAttribute removes the first attribute with name "x" that | |
| // we set on the element, irrespective of namespace. | |
| el.removeAttribute("x"); | |
| // The only attribute remaining should be the second one. | |
| assert_equals(el.getAttribute("x"), "second"); | |
| assert_equals(el.getAttributeNS("foo", "x"), null); | |
| assert_equals(el.getAttributeNS("foo2", "x"), "second"); | |
| assert_equals(el.attributes.length, 1, "one attribute"); | |
| }, "removeAttribute should remove the first attribute, irrespective of namespace, when the first attribute is " + | |
| "in a namespace"); | |
| </script> |