我已经读到了两者之间的区别: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>
使用HTML点符号给了我6,因为它总共注册了6个数组,但是当涉及到括号时,为什么它给了我first HTML list?
此处的工作示例:sample code
更新:好的,我刚刚发现我漏掉了引号。它应该是" length“而不是length。问题解决了。
发布于 2016-07-11 17:16:21
方括号表示法采用字符串。length
是一个变量。因为您没有显式地设置它,所以it is window.length
是文档中的帧数(它必须是0,因为您获取的是节点列表中的第一个元素)。
如果您想访问长度属性,那么就设置为["length"]
,并实际传递一个字符串。
发布于 2016-07-11 17:13:36
尝试将' length‘放在括号中,而不是length
基本上,您尝试访问一个对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用".propertyName“或使用带有”popertyName“的括号来访问属性
发布于 2016-07-11 17:16:36
[]
这意味着从数组中获取元素。似乎你的'length‘变量在某个地方定义了0值,这就是为什么它会给你'li’数组的第一个元素。
https://stackoverflow.com/questions/38303153
复制相似问题