NamedNodeMap.setNamedItemNS()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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