<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="js/domready.js"></script><!--必须导入该文件,搜狗输入domready.js-->
    <script>
        myReady(function(){
            //以下是HTMLCollection类数组对象//
            //var scripts=document.scripts;
            //console.log(scripts);//返回:HTMLCollection(2) [script, script]
            //var links=document.links;
            //console.log(links);//返回:HTMLCollection(10) [a, a#onea, a, a, a, a, a, a, a, a, onea: a#onea]
            //var images=document.images;
            //console.log(images);//返回:HTMLCollection(2) [img, img]
            //var forms=document.forms;
            //console.log(forms);//返回:HTMLCollection(2) [form, form]
            //var cells=document.getElementById("tr").cells;
            //console.log(cells);//返回:HTMLCollection(3) [td, td, td](火狐)
            //var options=document.getElementById("city").options;
            //console.log(options);//返回:HTMLOptionsCollection(5) [option, option, option, option, option, selectedIndex: 0]
            //var ps=document.getElementsByTagName("p");
            //console.log(ps);//返回:HTMLCollection(3) [p, p, p]
            
            //var cells=document.getElementById("tr").cells;
            //console.log(cells);//返回HTMLCollection类数组对象:HTMLCollection(3) [td#td, td, td, td: td#td](谷歌)
            //console.log(cells.length);
            //console.log(cells.item(2));
            //console.log(cells.item(3));//超过类数组对象的长度时,显示为null
            //console.log(cells.namedItem("td"));//返回 cells 类数组中先查找 id="td"的cell对象,如不存在,则查找name="td"的cell对象,如果存在多个name="td",则返回第一个。如果两个都不存在,则返回null对象。
            //=================以上是HTMLCollection类数组对象======================

//=================以下是NamedNodeMap类数组对象======================
            var box=document.getElementById("tab");//获取table对象
            var attributes=box.attributes;//获得box对象的属性。
            //console.log(attributes);
            //console.log(attributes.length);
            //console.log(attributes.style);
            //console.log(attributes.item(0));
            //console.log(attributes.item(1));
            //console.log(attributes.getNamedItem("style"));//获取指定属性的值。
            //console.log(attributes.removeNamedItem("style"));//删除指定属性,页面内的样式就会消失
            
            
            //=================HTMLCollection类数组对象创建节点实例======================
            var ps=document.getElementsByTagName("p");//获得HTMLCollection类数组对象
            var length=ps.length;
            alert(length);
            var i=0;
            while (i<length) {//这里不能写i=ps.length,(死循环),因为HTMLCollection类数组对象活的,每当文档结构发生变化时,都会进行更新。HTMLCollection,NamedNodeMap,NodeList
              var a=document.createElement("p");
              var txt=document.createTextNode("<h1>you are my sumshime"+i);
              a.appendChild(txt);
             document.getElementById("div").appendChild(a);
             i++;
            }
            
        })
    </script>
</head>
<body id="body">
    <div id="div">
        <ul id="ul1">
            <li id="oneLi"><a href="">1111</a><a href="" id="onea">22222</a><span id="span1"> </span> <span id="span2"></span></li>
            <li id="twoLi" name="oneLi"><a href="">4444</a><a href="" >5555</a><a href="">6666</a></li>
            <li id="threeLi"><a href="">7777</a><a href="" >8888</a><a href="">9999</a></li>
        </ul>
        <table id="tab" style="border: 1px solid #333; display:block;">
          <tr id="tr1" name="tr1">
            <td id="td">table</td>
            <td name="td">table1</td>
            <td name="td">table2</td>
          </tr>
          <tr id="tr2">
            <td>table</td>
            <td>table</td>
            <td>table</td>
          </tr>
        </table>
        <img src="" alt="" style="display: block; border: 1px solid; width: 100px; height: 100px; "><img src="" alt="" style="display: block; border: 1px solid; width: 100px; height: 100px; ">
        <form action="">
          姓名:<input type="text" name="name" value="张三">
          <input type="button" name="submit" value="提交">
        </form>
        <form action="">
          地址:<input type="text" name="address" value="中国">
          <input type="button" name="submit" value="提交">
        </form>
        <a href=""></a><a href=""></a>
        <select name="city" id="city">
          <option value="0">北京</option>
          <option value="1">上海</option>
          <option value="2">深圳</option>
          <option value="3">重庆</option>
          <option value="4">厦门</option>
        </select>
        <p>基础挤出机会</p>
        <p>基础挤出机会</p>
        <p>基础挤出机会</p>
    </div>
</body>

==============

NodeList实例对象是一个类数组对象,它的成员是节点对象,包括childNodes和querySelectorAll()方法返回值

NamedNodeMap 会自我更新。如果在节点列表或 XML 文档中删除或添加一个元素,那么该列表将会自动更新

HTMLCollection集合包括getElementsByTagName()、getElementsByClassName()、getElementsByName()等方法的返回值,以及children、document.links、document.forms等元素集合

类数组对象HTMLCollenction的更多相关文章

  1. 简述JavaScript对象、数组对象与类数组对象

    问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...

  2. js之数组,对象,类数组对象

    许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的,不过看到还是有很多朋友有些迷糊,这里就简单对于定义以及一下相同点,不同点 ...

  3. [Effective JavaScript 笔记]第51条:在类数组对象上复用通用的数组方法

    前面有几条都讲过关于Array.prototype的标准方法.这些标准方法被设计成其他对象可复用的方法,即使这些对象并没有继承Array. arguments对象 在22条中提到的函数argument ...

  4. [Effective JavaScript 笔记]第58条:区分数组对象和类数组对象

    示例 设想有两个不同类的API.第一个是位向量:有序的位集合 var bits=new BitVector(); bits.enable(4); bits.enable([1,3,8,17]); bi ...

  5. jQuery的类数组对象结构

    Query就是为了获取DOM.操作DOM而存在的 所以为了更方便这些操作,让节点与实例对象通过一个桥梁给关联起来,jQuery内部就采用了一种叫"类数组对象"的方式作为存储结构,所 ...

  6. 将类数组对象(array-like object)转化为数组对象(Array object)

    用法:Array.prototype.slice.call(array-like object) // 创建一个类数组对象 var alo = {0:"a", 1:"b& ...

  7. JavaScript类数组对象参考

    JavaScript和DOM中有很多类数组对象,它们有以下特点 1.有length属性 2.可以使用[]通过下标访问 3.部分类数组对象使用[]访问成员时不只可以使用下标,还可以使用id或name 4 ...

  8. 浅谈JavaScript和DOM中的类数组对象

    JavaScript是一门弱类型语言,它的数据类型分为两大类:简单数据类型(5种:Undefined.Null.Boolean.Number.String)和复杂数据类型(1种:Object).Obj ...

  9. javascript 类数组对象

    原文:https://segmentfault.com/a/1190000000415572 定义: 拥有length属性,其他属性(索引)为非负整数(对象中的所有会被当做字符串来处理,这里你可以当做 ...

随机推荐

  1. lua语法介绍(二)

    一.语法简要 在学习任何语法之前,我们都需要知道该门语言是怎样定义的,是怎样运行的,话说白了,就是到了人家的山头得唱人家山头的歌.下面介绍lua的语法 1.变量的定义 特点: 1.变量在使用前必须声明 ...

  2. 浅谈>/dev/null 2>&1

    在crond计划任务.nohup中我们经常可以看到>/dev/null 2>&1,但是很多人并不理解其含义,想要真正的理解它,首先我们需要知道文件描述符的三种类型. 类型 文件描述 ...

  3. 记录一次线上yarn RM频繁切换的故障

    周末一大早被报警惊醒,rm频繁切换 急急忙忙排查 看到两处错误日志 错误信息1 ervation <memory:0, vCores:0> 2019-12-21 11:51:57,781 ...

  4. Eureka 服务中心

    old                                                                                           使用Eure ...

  5. 手机网站支付如何接入支付宝简易版支付功能PHP版

    接入支付宝准备工作:(关于账号可以是个体商户也可以是企业账号但必须有营业执照) 1.登录蚂蚁金服开放平台  2.创建应用,应用分类网页应用和移动应用.应用提交审核审核通过后得到Appid才能调用相应的 ...

  6. PowerShell 反弹渗透技巧

    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,并且与现有的WSH保持向后兼容,因此它的脚本程序不仅能访 ...

  7. DateTime.TryParse 日期时间字符串验证

    DateTime applicationDatetime = new DateTime(); bool applicationDate = DateTime.TryParse("2019-0 ...

  8. Windows 编程 键盘

    键盘对于大家来说可能再也熟悉不过了,它和鼠标是现在最常用的电脑输入设备.虽然在现在的图形界面操作系统下使用鼠标比使用键盘更方便.更广泛,但是鼠标还是一时半会儿取代不了它的老前辈——键盘的地位,尤其是在 ...

  9. PHP如何通过URL访问,获得新的URL 两种方法

    1.1 $url = 'http://passport.drcloud.cn/api/logon.asp?id=1&ru=http://203.158.158.122/store/thirdL ...

  10. zepto学习(三)之详解

    zepto Zepto就是jQuery的移动端版本, 可以看做是一个轻量级的jQuery github地址: https://github.com/madrobby/zepto 官方地址: http: ...