Attr.namespaceURI

namespaceURIAttr インターフェイスの読み取り専用プロパティで、この属性の名前空間 URI を返し、この要素が名前空間にない場合は null を返します。

名前空間 URI は Attr の作成時に設定され、変更することができません。 名前空間付きの属性は、 Element.setAttributeNS() で作成することができます。

Note: 属性は、装着されている要素から名前空間を継承しません。 属性に明示的に名前空間が与えられなかった場合は、名前空間なしになります。

ブラウザーは名前空間の検証そのものは行いませんし、強制もしません。必要な検証を行うのは JavaScript アプリケーションに任されています。また、名前空間接頭辞は一度特定の属性ノードに関連づけられると、変更することができないので注意してください。

文字列で、この属性の名前空間 URI をが入ります。この要素が名前空間にない場合は null を返します。

次の例は、 HTML 要素と SVG 要素の場合で、接頭辞つきの属性の結果を示しています。 HTML は名前空間を扱わないので、この場合、常に null を返します。 SVG 要素の場合は、 XML の名前空間 URI である http://www.w3.org/XML/1998/namespace を返します。

HTML コンテンツ

<svg xml:lang="en-US" class="struct" height="1" width="1">Click me</svg>
<label xml:lang="en-US" class="struct"></label>

<button>Click me for &lt;svg&gt;</button>
<button>Click me for &lt;label&gt;</button>
<br><br>
URI of the attribute <code>xml:lang</code> namespace: <output id="result"><i>None.</i></output>

JavaScript コンテンツ

const elements = document.getElementsByClassName("struct");
const buttons = document.getElementsByTagName("button");
const result  = document.querySelector("#result");

function handleEvent(element) {
  return function(e) {
    attribute = element.attributes[0];
    result.value = attribute.namespaceURI;
  }
}

let i=0;
for (let button of buttons) {
  button.addEventListener('click', handleEvent(elements[i]));
  i++;
}

結果

仕様書

Specification
DOM Standard
# dom-attr-namespaceuri

ブラウザーの互換性

BCD tables only load in the browser

関連情報