使用带有点表示法和括号表示法的Javascript .length会产生不同的结果
Using Javascript .length with dot notation and bracket notation produce different result
我已经读过两者之间的区别:点和括号表示法之间的区别
但是,当我尝试使用默认的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 列表?
这里的工作示例:示例代码
更新:好的,我刚刚发现我错过了报价。它应该是["长度"]而不是[长度]。问题解决了。
方括号表示法采用字符串。 length
是一个变量。由于您尚未显式设置它,因此window.length
文档中的帧数(必须为 0,因为您正在获取节点列表中的第一个元素)。
如果要访问 length 属性,请说["length"]
并实际传递一个字符串。
尝试将"长度"放在括号中而不是长度
基本上,您尝试访问对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用".propertyName"或使用带有['popertyName']的括号来访问该属性
[]
这意味着从数组中获取元素。似乎您的"长度"变量被定义为 0 值,这就是为什么它为您提供了"li"数组的第一个选项。
相关文章:
- React中的数据集表示
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- Array.length似乎不起作用;console.log则显示其他情况
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- regex表示逗号,后跟空格或仅逗号
- 为什么Float32Array.length的值总是3
- 我将如何将其更改为循环和数组表示法
- 如何使用Undercore和Backbone在HTML中表示模型属性
- 将JSON对象的表示形式更改为显式键/值格式
- 如何在JS中获得CryptoJS.HmacSHA256的摘要表示
- 在javascript中使用方括号表示法的嵌套对象
- 如何在JavaScript中将数字表示为十六进制
- 如何从二进制int中获取百分比,每个位表示x%
- Regex表示10位数字,其中没有't允许所有零、所有单个no和序列号
- 如何避免“;使用数组文字表示法“;以下javascript代码中的jslint错误
- Regex表示8位电话号码(新加坡号码长度)
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 使用带有点表示法和括号表示法的Javascript .length会产生不同的结果