当我尝试通过id访问DOM元素时,我最近遇到了一件有趣的事情。所以,让我告诉你我得到了什么。
以下是HTML代码:
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<ul id='here' data-hi='123'>
<li id='li1'>1</li>
<li id='li2'>2</li>
<li id='li3'>3</li>
</ul>
</body>
</html>
我尝试访问ID为“li2”的第二个列表项并将其删除,这是JavaScript代码:
var ul = document.getElementById('here');
ul.removeChild(li2);
显然,“li1”在使用之前没有定义。但是,此代码有效,列表中的seconde项目已被删除。
,我尝试这样的另一个代码:
here.removeChild(li2);
它还在工作!!!我尝试在Chrome44,Firefox40和IE11上运行此代码,代码在这些浏览器上运行良好。
然后我尝试给第二个li标签命名为“li2name”,并做了同样的事情:
<li id='li2' name='li2name'>2</li>
here.removeChild(li2name);
抛出了错误:
Uncaught ReferenceError: li2name is not defined
我的问题是,当我尝试在元素的ID之后直接使用对象名称访问元素时,它的工作原理是什么?使用JavaScript引擎为我们隐式调用document.getElementById吗?