文档:getElementsByTagNameNS() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

返回一个包含属于指定命名空间的具有给定标签名称的元素的列表。将搜索整个文档,包括根节点。

语法

js
getElementsByTagNameNS(namespace, name)

参数

namespace

要查找的元素的命名空间 URI(请参阅 element.namespaceURI)。

name

要查找的元素的本地名称,或者特殊值 *,它匹配所有元素(请参阅 element.localName)。

注意:document.getElementsByTagName() 不同,getElementsByTagNameNS() 的参数区分大小写。

返回值

一个动态的 HTMLCollection,包含了按在树中出现的顺序排列的已找到的元素。

示例

在下面的示例中,getElementsByTagNameNS 从一个特定的父元素开始,并从该父元素开始通过 DOM 递归地自顶向下搜索,查找匹配 name 参数的子元素。

请注意,当调用 getElementsByTagName 的节点不是 document 节点时,实际上使用的是 element.getElementsByTagNameNS 方法。

要使用下面的示例,只需将其复制/粘贴到一个以 .xhtml 扩展名保存的新文件中。

html
<p>Some outer text</p>
<p>Some outer text</p>

<div id="div1">
  <p>Some div1 text</p>
  <p>Some div1 text</p>
  <p>Some div1 text</p>

  <div id="div2">
    <p>Some div2 text</p>
    <p>Some div2 text</p>
  </div>
</div>

<p>Some outer text</p>
<p>Some outer text</p>

<button id="btn1">Show all p elements in document</button>
<br />
<button id="btn2">Show all p elements in div1 element</button>
<br />
<button id="btn3">Show all p elements in div2 element</button>
css
body {
  border: solid green 3px;
}

#div1 {
  border: solid blue 3px;
}

#div2 {
  border: solid red 3px;
}
js
function getAllParaElems() {
  const allParas = document.getElementsByTagNameNS(
    "http://www.w3.org/1999/xhtml",
    "p",
  );
  const num = allParas.length;
  alert(`There are ${num} &lt;p&gt; elements in this document`);
}

function div1ParaElems() {
  const div1 = document.getElementById("div1");
  const div1Paras = div1.getElementsByTagNameNS(
    "http://www.w3.org/1999/xhtml",
    "p",
  );
  const num = div1Paras.length;
  alert(`There are ${num} &lt;p&gt; elements in div1 element`);
}

function div2ParaElems() {
  const div2 = document.getElementById("div2");
  const div2Paras = div2.getElementsByTagNameNS(
    "http://www.w3.org/1999/xhtml",
    "p",
  );
  const num = div2Paras.length;
  alert(`There are ${num} &lt;p&gt; elements in div2 element`);
}

document.getElementById("btn1").addEventListener("click", getAllParaElems);
document.getElementById("btn2").addEventListener("click", div1ParaElems);
document.getElementById("btn3").addEventListener("click", div2ParaElems);

规范

规范
DOM
# ref-for-dom-document-getelementsbytagnamens①

浏览器兼容性

另见