使用带有点表示法和括号表示法的Javascript .length会产生不同的结果

时间:2016-07-11 09:11:48

标签: javascript notation

我已经读过两者之间的区别: 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

更新 好的,我发现我错过了报价。它应该是[“长度”]而不是[长度]。问题解决了。

3 个答案:

答案 0 :(得分:1)

尝试将'length'放在括号中而不是长度

基本上,您尝试访问对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用“.propertyName”或使用带有['popertyName']

的括号来访问该属性

答案 1 :(得分:1)

方括号表示法采用字符串length是一个变量。由于您尚未明确设置它,it is window.length这是文档中的帧数(由于您获取节点列表中的第一个元素,因此必须为0)。

如果要访问length属性,请说出["length"]并实际传递一个字符串。

答案 2 :(得分:0)

[]这意味着从数组中获取元素。似乎你的'length'变量被定义为0值,这就是为什么它给你第一个'li'数组元素。