将 Javascript .length 与点符号和括号符号一起使用会产生不同的结果
Using Javascript .length with dot notation and bracket notation produce different result
我已经了解了两者之间的区别:
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
更新:
好的,我刚刚发现我错过了引号。它应该是 ["length"] 而不是 [length]。问题已解决。
尝试将 'length' 放在括号中而不是长度
基本上你试图访问一个对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用“.属性Name”或使用括号 ['popertyName']
来访问 属性
方括号表示法采用字符串。 length
是一个变量。由于您没有明确设置它,it is window.length
这是文档中的帧数(必须为 0,因为您正在获取节点列表中的第一个元素)。
如果你想访问长度 属性 然后说 ["length"]
并实际传递一个字符串。
[]
这意味着从数组中获取元素。似乎您的 'length' 变量在某处定义为 0 值,这就是为什么它为您提供 'li' 数组的第一个元素。
我已经了解了两者之间的区别: 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
更新: 好的,我刚刚发现我错过了引号。它应该是 ["length"] 而不是 [length]。问题已解决。
尝试将 'length' 放在括号中而不是长度
基本上你试图访问一个对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用“.属性Name”或使用括号 ['popertyName']
来访问 属性方括号表示法采用字符串。 length
是一个变量。由于您没有明确设置它,it is window.length
这是文档中的帧数(必须为 0,因为您正在获取节点列表中的第一个元素)。
如果你想访问长度 属性 然后说 ["length"]
并实际传递一个字符串。
[]
这意味着从数组中获取元素。似乎您的 'length' 变量在某处定义为 0 值,这就是为什么它为您提供 'li' 数组的第一个元素。