JavaScript中的增强for遍历Dom对象出现undefined

Html代码如下:

<!DOCTYPE html>
<html>
 
<head>
    <title>01节点访问.html</title>
    <script type="text/javascript">
    </script>
</head>
 
<body>
    <ul id="langue">
        <li>hello</li>
        <li>java</li>
        <li>android</li>
    </ul>
    <script type="text/javascript">
      var arr = document.getElementsByTagName("li");
      for (var i in arr) {
          console.info( i, arr[i] );
      }
      for ( var i = 0; i < arr.length; i++ ) {
          console.info( arr[ i ] );
      }
    </script>
</body>
</html>

    输出:
   

        0

        hello

        1
        java

        2
        android

        length 3
        item function item() { [native code] }
        namedItem function namedItem() { [native code] }这里是引用

原因是因为:

    document.getElementsByTagName("li") 获取到的是一个类数组对象NodeList,
    它是一个对象而不是真正的数组, 所以,通过for/in语法遍历也会输出它继承过来的属性和方法
    你可以使用for循环来遍历数组以及类数组对象
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 《JavaScript权威指南(第6版)》要讲述的内容涵盖JavaScript语言本身,以及web浏览器所实现的JavaScript API。本书第6版涵盖了 html5 和 ecmascript 5,很多章节完全重写,增加了当今 web 开发的最佳实践的内容,新增的章节包括 jQuery、服务器端 JavaScript、图形编程以及JavaScript式的面向对象。本书不仅适合初学者系统学习,也适合有经验的 JavaScript开发者随手翻阅。 《JavaScript权威指南(第6版)》是程序员学习核心JavaScript语言和由WEB浏览器定义的JavaScript API的指南和综合参考手册。 《JavaScript权威指南(第6版)》涵盖html5和ecmascript 5。很多章节完全重写,以便与时俱进,紧跟当今的最佳web开发实践。本书新增章节描述了jQuery和服务器端JavaScript。 本书适合那些希望学习WEB编程语言的初、级程序员和希望精通JavaScript的程序员阅读。 作者简介 作者:(美国)弗兰纳根(David Flanagan) 译者:淘宝前端团队 弗兰纳根(David Flanagan)是一名程序员,也是一名作家,他在O’Reilly版的其他畅销书还包括《JavaScript Pocket Reference》、《The Ruby Programming Language》、以及《Java in a Nutshell》。David毕业于麻省理工学院,获得计算机科学与工程学位。他和妻子和孩子一起生活在西雅图和温哥华之间的美国太平洋西北海岸。 目录 前言 1 第1章 javascript概述 5 1.1 javascript语言核心 8 1.2 客户端javascript 12 第一部分 javascript 语言核心 第2章 词法结构 25 2.1 字符集 25 2.2 注释 27 2.3 直接量 27 2.4 标识符和保留字 28 2.5 可选的分号 30 第3章 类型、值和变量 32 3.1 数字 34 3.2 文本 38 3.3 布尔值 43 3.4 null和undefined 44 3.5 全局对象 45 3.6 包装对象 46 3.7 不可变的原始值和可变的对象引用 47 .3.8 类型转换 48 3.9 变量声明 55 3.10 变量作用域 56 第4章 表达式和运算符 60 4.1 原始表达式 60 4.2 对象和数组的初始化表达式 61 4.3 函数定义表达式 62 4.4 属性访问表达式 63 4.5 调用表达式 64 4.6 对象创建表达式 64 4.7 运算符概述 65 4.8 算术表达式 69 4.9 关系表达式 74 4.10 逻辑表达式 79 4.11 赋值表达式 81 4.12 表达式计算 83 4.13 其他运算符 86 第5章 语句 91 5.1 表达式语句 92 5.2 复合语句和空语句 92 5.3 声明语句 94 5.4 条件语句 96 5.5 循环 101 5.6 跳转 106 5.7 其他语句类型 113 5.8 javascript语句小结 116 第6章 对象 118 6.1 创建对象 120 6.2 属性的查询和设置 123 6.3 删除属性 127 6.4 检测属性 128 6.5 枚举属性 130 6.6 属性getter和setter 132 6.7 属性的特性 134 6.8 对象的三个属性 138 6.9 序列化对象 141 6.10 对象方法 142 第7章 数组 144 7.1 创建数组 144 7.2 数组元素的读和写 145 7.3 稀疏数组 147 7.4 数组长度 148 7.5 数组元素的添加和删除 149 7.6 数组遍历 149 7.7 多维数组 151 7.8 数组方法 152 7.9 ecmascript 5的数组方法 156 7.10 数组类型 160 7.11 类数组对象 161 7.12 作为数组的字符串 163 第8章 函数 165 8.1 函数定义 166 8.2 函数调用 168 8.3 函数的实参和形参 173 8.4 作为值的函数 178 8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和构造函数 203 9.3 javascriptjava式的类继承 207 9.4 类的扩充 210 9.5 类和类型 212 9.6 javascript的面向对象技术 217 9.7 子类 230 9.8 ecmascript 5 的类 2

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值