一、祖先接口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 />")
}

好好学习,天天向上!!

js原生API----查找dom的更多相关文章

  1. ES7前端异步玩法:async/await理解 js原生API妙用(一)

    ES7前端异步玩法:async/await理解   在最新的ES7(ES2017)中提出的前端异步特性:async.await. 什么是async.await? async顾名思义是“异步”的意思,a ...

  2. 使用Node.js原生API写一个web服务器

    Node.js是JavaScript基础上发展起来的语言,所以前端开发者应该天生就会一点.一般我们会用它来做CLI工具或者Web服务器,做Web服务器也有很多成熟的框架,比如Express和Koa.但 ...

  3. js原生api之String的slice方法

    我们在工作中可能会很少进行这样的思考,对于一些常用的原生api它是如何实现的呢,如果让我们去用js实现一个与原生api功能相同的函数我们该如何设计算法去实现呢? 为了巩固自己的编程技术和提高自己的编程 ...

  4. js原生API妙用(一)

    复制数组 我们都知道数组是引用类型数据.这里使用slice复制一个数组,原数组不受影响. let list1 = [1, 2, 3, 4]; let newList = list1.slice(); ...

  5. js原生选择class DOM元素

    document.querySelector(".demo"); querySelector() 方法返回匹配指定选择器的第一个元素.如果需要返回所有的元素,使用 querySel ...

  6. jQuery? 回归JavaScript原生API

    如今技术日新月异,各类框架库也是层次不穷.即便当年漫山红遍的JQuery(让开发者write less, do more,So Perfect!!)如今也有被替代的大势.但JS原生API写法依旧:并且 ...

  7. 认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法

    (一)认识JQuery  JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法    JQuery的主旨:以更少的代码,实现更多的功能 (二)JQue ...

  8. 百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例

    百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例 相关说明 1. 界面查看: 吐槽贴:百度地图 api 封装 的实用功能 [源码下载] 2. 功能说明: 百度地图整合功能分享修 ...

  9. 原生JS和jQuery操作DOM的区别小结

    一.Js原生对象和jQuery实例对象的相互转化: (1).原生JS对象转JQ对象: $(DOM对象); (2). JQ对象转原生JS对象: $(DOM对象).get(index); //注意区分eq ...

随机推荐

  1. jvm垃圾收集小记

    垃圾收集是java与c/c++的最大不同.有了jvm的自动垃圾收集机制,就可以让程序员专注于程序逻辑开发, 而不是花费大量的时间是考虑一个变量应该在什么时候去释放. 下面我们就来简单说一下java的垃 ...

  2. MATLAB 单变量函数一阶及N阶求导

    1 对一维函数的求导及求特定函数处的变量值 %%最简单的一阶单变量函数进行求导 function usemyfunArray() %主函数必须位于最上方 clc clear syms x %syms ...

  3. Vuex 模块化与项目实例 (2.0)

    Vuex 强调使用单一状态树,即在一个项目里只有一个 store,这个 store 集中管理了项目中所有的数据以及对数据的操作行为.但是这样带来的问题是 store 可能会非常臃肿庞大不易维护,所以就 ...

  4. 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button

    在 WPF 上可用的控件拖动方法在 UWP 上大多没用,那干脆用 Thumb 仿制一个吧. 关于 Thumb 控件的教程也不多,毕竟在 WPF 控件拖动有很多种方法, Thumb 就显得很鸡肋了.下面 ...

  5. 动态样式语言—LESS

    博客原文地址:Claiyre的个人博客 https://claiyre.github.io/ 博客园地址:http://www.cnblogs.com/nuannuan7362/ 如需转载,请在文章开 ...

  6. (C#)xml的简单理解创建和读取

    xml知识点清理:一.文档规则 1.区分大小写. 2.属性值必须加引号(单引号.双引号都可以),一般情况下建议使用使用双引号. 3.所有标记必须有结束符号. 4.所有空标记必须关闭. 5.必须有且仅有 ...

  7. 快速排序的C语言实现

    #include <stdio.h> int qSort(int a[],int i,int j) { int h = i; int r = j; int x = a[h]; int f ...

  8. 图片转换PDF

    组件在我的文件里,需要的可以找找. public partial class MainForm : Form { private string srcFile, destFile; bool succ ...

  9. WP8.1开发中关于如何显示.gif格式动态格式图片方法

    这几天又遇到个问题,就是如何显示动态图片,本来以为和显示静态图片一样,谁知不行,在网上一查才知道WP8.1不支持.gif格式动态图片的显示: 后来又在MSDN论坛上查找,也有人问类似的问题,后来就大概 ...

  10. C语言的基本概念

    1.经典入门:hello world #include <stdio.h> int main(void) { printf("hello world.\n"); ; } ...