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

好好学习,天天向上!!

最新文章

  1. 深入浅出JMS(二)--ActiveMQ简单介绍以及安装
  2. python print 进度条的例子
  3. java自定义注解实现前后台参数校验
  4. matlab 读取excel
  5. 【Shell脚本学习4】几种常见的Shell
  6. 剑指offer--面试题15
  7. Socket编程实践(4) --更复杂的过程server
  8. SQL 比较中文字符串
  9. gogs git代码管理
  10. java错误分类
  11. ESP8266当中继
  12. 洛谷 P1443 马的遍历
  13. mssql sqlserver 视图如何加密,让第三方用户查看不到其中的SQL语句
  14. React-Redux使用方法
  15. 基于ε-NFA的正则表达式引擎
  16. [development][c++] C++构造函数调用构造函数
  17. grid的简单使用
  18. 谈谈在 .Net 平台上的 软件生态 和 软件生产力
  19. c# update check
  20. 账号被锁无法ssh登陆

热门文章

  1. Linq 集合操作
  2. Ninject之旅之十二:Ninject在Windows Form程序上的应用(附程序下载)
  3. wamp修改空密码以及设置虚拟站点
  4. BZOJ 3653: 谈笑风生(DFS序+可持久化线段树)
  5. Excel与XML相互转换 - C# 简单实现方案
  6. 【CNMP系列】CentOS7.0下安装PHP5.6.30服务
  7. Cloud9vue&amp;vux上传github小步骤
  8. 简单却又复杂的FizzBuzz面试编程问题
  9. SQL SERVER - 谈死锁的监控分析解决思路
  10. Java8中 Parallel Streams 的陷阱 [译]