首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用nodeName属性检索属性的名称?

如何使用nodeName属性检索属性的名称?
EN

Stack Overflow用户
提问于 2021-02-13 23:35:13
回答 3查看 340关注 0票数 0

您可以使用nodeName轻松地检索元素的标记名,如下所示:

代码语言:javascript
复制
var atnode = document.getElementById("link-test");
alert(atnode.nodeName);
代码语言:javascript
复制
<a href="#" id="link-test">link</a>

但是如何使用nodeName来获取元素的属性呢?

使用getAttribute()并不能做我想做的事情,因为您必须先插入属性的名称,然后它只返回属性值。我想得到属性的名称,就像我对nodeName所做的那样。我知道nodeName也可以用于属性节点,但是如何使用呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-13 23:57:24

您可以在节点上获得带有getAttributeNames()的属性列表。在您的示例中,您可以这样做:

atnode.getAttributeNames(),这将返回["href", "id"]

然后,您可以使用getAttribute(<item from list as string>)循环遍历列表,以获取元素的属性值。

票数 0
EN

Stack Overflow用户

发布于 2021-02-13 23:50:20

代码语言:javascript
复制
const atnode = document.getElementById("link-test");
const nodes=[];
const values=[];

for (let att, i = 0, atts = atnode.attributes, n = atts.length; i < n; i++){
    att = atts[i];
    nodes.push(att.nodeName);
    values.push(att.nodeValue);
    console.log(att.nodeName + " - " + att.nodeValue);
}
代码语言:javascript
复制
<a href="#" id="link-test">link</a>

在使用属性方法之后,可以使用nodeName获取属性名,使用nodeValue获取属性值。将其推送到数组后,可以在两个数组中使用相同的索引获取属性和值。

票数 1
EN

Stack Overflow用户

发布于 2021-02-14 00:04:52

如果我理解得对,您只需使用getAttributeNames方法即可。

以下是一个例子:

代码语言:javascript
复制
const exampleElement = document.getElementsByTagName("example")[0];
console.log(exampleElement.getAttributeNames());
代码语言:javascript
复制
<example name="one" last="two"></example>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66191029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档