我已经读过两者之间的区别: Difference between dot and bracket notation
但是,当我尝试使用默认的JavaScript .length来组合一个简单的HTML示例来引用它们时:
<ul id="allList">
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
</ul>
console.log(document.getElementById("allList").getElementsByTagName("li").length);
//6
console.log(document.getElementById("allList").getElementsByTagName("li")[length]);
//<li>a</li>
使用点符号给我 6 ,因为它从HTML中注册了总共6个数组但是当来到括号时,为什么呢?给我第一个HTML列表而不是?
这里的工作示例: sample code
更新 好的,我发现我错过了报价。它应该是[“长度”]而不是[长度]。问题解决了。
答案 0 :(得分:1)
尝试将'length'放在括号中而不是长度
基本上,您尝试访问对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用“.propertyName”或使用带有['popertyName']
的括号来访问该属性答案 1 :(得分:1)
方括号表示法采用字符串。 length
是一个变量。由于您尚未明确设置它,it is window.length
这是文档中的帧数(由于您获取节点列表中的第一个元素,因此必须为0)。
如果要访问length属性,请说出["length"]
并实际传递一个字符串。
答案 2 :(得分:0)
[]
这意味着从数组中获取元素。似乎你的'length'变量被定义为0值,这就是为什么它给你第一个'li'数组元素。