JS 中getAttribute()获取不到属性,getAttributeNode却可以?

<divid="box">你好</div><script>varele=document.getElementById("box");varatt=ele.getAttr... <div id="box">
你好
</div>
<script>
var ele=document.getElementById("box");
var att=ele.getAttributeNode("id");
//nodeType
console.log(ele.nodeType);/*打印1*/
console.log(att.nodeType);/*打印undifined*/

// nameType
console.log(ele.nodeName );/*打印div*/

console.log(att.nodeName);/*打印undifined*/

</script>
不应该是getAttributeNode的效率比getAttribute要低一些吗?
展开
 我来答
网海1书生
科技发烧友

2018-04-26 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26230

向TA提问 私信TA
展开全部
这是因为getAttribute的返回值是个字符串(String),也就是要获取的那个属性的值,它并没有nodeType和nodeName这样的属性,所以显示结果为undifined。你直接用
console.log(att);
就能看到实际结果了(即"box")
而getAttributeNode返回的则是一个Node对象,包括了属性的名称(nodeName)、属性的类型(nodeType)和属性的值(nodeValue),所以两者是不同的,如果你只需要获取属性的值,建议使用getAttribute。
另外,由于id是DIV标签的内置属性,所以可以直接这样来使用:
var att=ele.id;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式