代码之家  ›  专栏  ›  技术社区  ›  Vincent1989

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

  •  -2
  • Vincent1989  · 技术社区  · 8 年前

    我已经了解到两者之间的区别: Difference between dot and bracket notation

    然而,当我试图用defaultJavaScript.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个数组,但当达到 支架 ,为什么它给了我 相反

    sample code

    更新: 好的,我刚刚发现我漏掉了引号。它应该是[“length”]而不是[长度]。问题解决了。

    3 回复  |  直到 6 年前
        1
  •  1
  •   Quentin    8 年前

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

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

        2
  •  1
  •   R. Foubert    8 年前

    尝试在括号中输入“length”而不是length

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

        3
  •  -1
  •   Shynggys Kengessov    8 年前

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