NamedNodeMap.setNamedItemNS()

setNamedItemNS()NamedNodeMap インターフェイスのメソッドで、このマップに名前で識別される属性 (Attr) を設定します。 すでに同じ名前の Attr がこのマップに存在した場合は、置き換えます

メモ: このメソッドは setNamedItem() の別名であり、入れ替えて使用することができます。

構文

js
setNamedItemNS(attr);

引数

attr

このマップに挿入する属性です。

返値

置き換えた場合は古い属性を返します。属性が新規の場合は null です。

例外

InUseAttributeError DOMException

この属性が他のマップに所属していた場合に発生します。

html
<span ob:one="one"></span>
<pre></pre>
js
const parser = new DOMParser();
// ob:one in <span> is not in a namespace, while ob:one in <warning>, is.
const xmlString =
  '<warning ob:one="test" xmlns:ob="http://www.example.com/ob">Beware!</warning>';
const doc = parser.parseFromString(xmlString, "application/xml");

const span = document.getElementsByTagName("span")[0];
const pre = document.getElementsByTagName("pre")[0];
const warning = doc.getElementsByTagName("warning")[0];
const attrMap = span.attributes;

let result = `The '<span>' element initially contains ${attrMap.length} attribute.\n\n`;

result += "We remove `one` from '<span>' and adds it to '<pre>'.\n";
const one = warning.attributes.removeNamedItemNS(
  "http://www.example.com/ob",
  "one",
);
attrMap.setNamedItemNS(one);
result += `The '<span>' element now contains ${span.attributes.length} attributes:\n\n`;
result += "Prefix\tLocal name\tQualified name\n";
result += "=========================================\n";

for (const attr of attrMap) {
  result += `${attr.prefix}\t${attr.localName}\t\t${attr.name}\n`;
}

pre.textContent = result;

仕様書

Specification
DOM Standard
# dom-namednodemap-setnameditemns

ブラウザーの互換性

BCD tables only load in the browser