NamedNodeMap.setNamedItem()

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.

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

構文

js
setNamedItem(attr);

引数

attr

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

返値

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

例外

InUseAttributeError DOMException

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

html
<span one="one" two="two"></span>
<pre test="testValue"></pre>
js
const span = document.getElementsByTagName("span")[0];
const pre = document.getElementsByTagName("pre")[0];
const attrMap = pre.attributes;

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

result += "We remove `one` from `<span>` and adds it to `<pre>`.\n";
const one = span.attributes.removeNamedItem("one");
attrMap.setNamedItem(one);
result += `The '<pre>' element now contains ${pre.attributes.length} attributes.\n\n`;

result += "We get 'two' from '<span>' and try to adds it to '<pre>'.\n";
const two = span.attributes.getNamedItem("two");
try {
  attrMap.setNamedItem(two);
} catch (e) {
  result += `An exception has been raised: ${e.name}.\n`;
}

pre.textContent = result;

仕様書

Specification
DOM Standard
# dom-namednodemap-setnameditem

ブラウザーの互換性

BCD tables only load in the browser