zoukankan      html  css  js  c++  java
  • js原生API----查找dom

    一、祖先接口Node,及他的扩展接口EventTarget

    Node是一个接口,许多DOM类型从这个接口继承,并允许类似地处理(或测试)这些各种类型。

    以下接口都从Node继承其方法和属性:

    DocumentElementCharacterData (which TextComment, and CDATASection inherit), ProcessingInstructionDocumentFragmentDocumentTypeNotationEntityEntityReference

    在方法和属性不相关的特定情况下,这些接口可能返回null。它们可能会抛出异常 - 例如,当将子节点添加到没有子节点的节点类型时。

    EventTarget 是一个由可以接收事件的对象实现的接口,并且可以为它们创建侦听器。

    Elementdocument 和 window 是最常见的事件目标,但是其他对象也可以是事件目标,比如XMLHttpRequestAudioNodeAudioContext 等等。

    许多事件目标(包括元素,文档和 window)还支持通过 on... 属性和属性设置事件处理程序

    二、document接口

    Document接口表示在浏览器中加载的任何网页,并作为到网页内容的入口点,这是 DOM 树。 DOM树包括诸如<body> 和 <table>之类的元素,其他等等。其也为文档(document)提供了全局性的函数,例如获取页面的URL、在文档中创建新的 element 的函数。它为文档提供全局的函数,像如何获取页面的URL和在文档中创建新的元素。

     Document 接口也继承自  Node 及 EventTarget 接口。

    https://developer.mozilla.org/zh-CN/docs/Web/API/Document


    三、查找dom API


    三种返回形式:HTML,HTMLcollection,HTMLlist
    3.1
    HTML

    document.getElementById 返回html
    document.querySelector   返回html

    3.2 HTMLcollection
    HTMLCollection 是一个接口,表示 HTML 元素的集合,它提供了可以遍历列表的方法和属性。
    document.getElementsByClassName  返回HTMLcollection
    document.getElementsByTagName    返回HTMLcollection
    document.forms等属性          

    Document (images, applets, links, forms, anchors)
    form (elements)
    map (areas)
    select (options)
    table (rows, tBodies)
    tableSection (rows)
    row (cells)        

    返回HTMLcollection



    document.getElementsByName      返回HTMLlist
    document.querySelectorAll     返回HTMLlist
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <style>
        div{border: 1px solid #000;}
    </style>
    <body>
        <div id="js_id" class="js-class" name='js-name'>
            <div>123</div>
        </div>
        <form action="" name="form2" ></form>
    </body>
        <script>
        // https://developer.mozilla.org/zh-CN/docs/Web/API/Document
        // https://developer.mozilla.org/zh-CN/docs/Web/API/Element
        /*
        Document接口表示在浏览器中加载的任何网页,并作为到网页内容的入口点,这是 DOM 树。
         DOM树包括诸如<body> 和 <table>之类的元素,其他等等。其也为文档(document)提供了全局性的函数,例如获取页面的URL、在文档中创建新的 element 的函数。它为文档提供全局的函数,像如何获取页面的URL和在文档中创建新的元素。
         */
    
        // 1、老ie会获得 name
        // 2、返回 第一个的html
        var js_id=document.getElementById('js_id');
        console.log(js_id)
        // 类似于jquery $, 但只返回第一个选择器匹配的html   IE8+
        var js_selector=document.querySelector('#js_id');
        console.log(js_selector)
    
        // HTMLCollection是一个特殊的NodeList,表示包含了若干元素(元素顺序为文档流中的顺序)的通用集合是element的集合,它是实时更新的
        // 返回一个集合 HTMLcollection    IE9+
        var js_class=document.getElementsByClassName('js-class');
        console.log(js_class) 
        var js_div=document.getElementsByTagName('div')
        console.log(js_div)     
        // dovument.forms 是属性
        var js_forms=document.forms
        console.log(js_forms) 
    
    
        // NodeList 对象是一个节点的集合,
        // 返回noteList                   是node的集合
        var js_name=document.getElementsByName('js-name') 
        console.log(js_name) 
        var js_selector_all=document.querySelectorAll('.js-class') 
        console.log(js_selector_all) 
    
    
        // 集合下 寻找  document 是整个html文档  -> html下才能使用 element方法API
        console.log(js_id.querySelector('div'))        //<div>123</div>
        // console.log(js_class.querySelector('div'))  error
        // console.log(js_name.querySelector('div'))   error
    
        </script>
    </html>


    http://blog.csdn.net/hj7jay/article/details/53389522

    https://developer.mozilla.org/zh-CN/docs/Web/API

    四、在集合内查找dom

     1、HTMLcollection下可以使用 ,通过编号或名称索引一个 HTMLCollection 对象,也可以调用 item() 方法和 namedItem() 方法

    属性 length 只读属性,返回指示列表长度的整数(即集合中的元素数)。
    [] 返回集合中 指定index位置的元素,name 属性或 id 属性具有指定值的元素(节点)
    item() 返回集合中指定位置的元素(节点)。
    namedItem() 返回集合中 name 属性或 id 属性具有指定值的元素(节点)。
    <body>
        <form action="" name="form_name">
            <input type="text" name="text">
            <select name="sel" id="sel">
                <option value="1">1</option>
                <option value="2">3</option>
            </select>
        </form>    
    </body>
    <script>
        // 二级查找在集合内查找 dom
        // HTMLcollection  [],item,namedItem
        var js_forms=document.forms;
        console.log(js_forms[0],js_forms['form_name'],js_forms['form1'])
        console.log(js_forms.item(0),js_forms.namedItem('form_name'))
    
    //得到 相同的html
    </script>

    2、HTMLcollection下可以使用 ,通过编号一个 HTMLCollection 对象,也可以调用 item() 方法,属性 length

    // nodeList
        var nodeList=document.querySelectorAll('#form1')
        console.log(nodeList[0],nodeList.item(0))
    // 配合for 遍历dom
        var js_set=document.getElementById('sel')
        var x=js_set.childNodes;
        for (i=0;i<x.length;i++)
          {
               document.write(x.item(i).nodeName+x.item(i).nodeType)
              document.write("<br />")
          }

    好好学习,天天向上!!

  • 相关阅读:
    网站结构之扁平结构与树形结构的区分
    如何提高网站的访问速度
    CSS透明度大汇总
    Microsoft.AlphaImageLoader滤镜讲解
    浏览器的渲染原理简介
    ACM思维题训练 Section A
    CF--思维练习--CodeForces
    CF--思维练习--CodeForces
    CF--思维练习--CodeForces
    CF思维联系--CodeForces
  • 原文地址:https://www.cnblogs.com/blog-index/p/6629528.html
Copyright © 2011-2022 走看看