js原生API----查找dom
一、祖先接口Node,及他的扩展接口EventTarget
Node是一个接口,许多DOM类型从这个接口继承,并允许类似地处理(或测试)这些各种类型。
以下接口都从Node继承其方法和属性:
Document, Element, CharacterData (which Text, Comment, and CDATASection inherit), ProcessingInstruction, DocumentFragment, DocumentType, Notation, Entity, EntityReference
在方法和属性不相关的特定情况下,这些接口可能返回null。它们可能会抛出异常 - 例如,当将子节点添加到没有子节点的节点类型时。
EventTarget 是一个由可以接收事件的对象实现的接口,并且可以为它们创建侦听器。
Element,document 和 window 是最常见的事件目标,但是其他对象也可以是事件目标,比如XMLHttpRequest,AudioNode,AudioContext 等等。
许多事件目标(包括元素,文档和 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的更多相关文章
- ES7前端异步玩法:async/await理解 js原生API妙用(一)
ES7前端异步玩法:async/await理解 在最新的ES7(ES2017)中提出的前端异步特性:async.await. 什么是async.await? async顾名思义是“异步”的意思,a ...
- 使用Node.js原生API写一个web服务器
Node.js是JavaScript基础上发展起来的语言,所以前端开发者应该天生就会一点.一般我们会用它来做CLI工具或者Web服务器,做Web服务器也有很多成熟的框架,比如Express和Koa.但 ...
- js原生api之String的slice方法
我们在工作中可能会很少进行这样的思考,对于一些常用的原生api它是如何实现的呢,如果让我们去用js实现一个与原生api功能相同的函数我们该如何设计算法去实现呢? 为了巩固自己的编程技术和提高自己的编程 ...
- js原生API妙用(一)
复制数组 我们都知道数组是引用类型数据.这里使用slice复制一个数组,原数组不受影响. let list1 = [1, 2, 3, 4]; let newList = list1.slice(); ...
- js原生选择class DOM元素
document.querySelector(".demo"); querySelector() 方法返回匹配指定选择器的第一个元素.如果需要返回所有的元素,使用 querySel ...
- jQuery? 回归JavaScript原生API
如今技术日新月异,各类框架库也是层次不穷.即便当年漫山红遍的JQuery(让开发者write less, do more,So Perfect!!)如今也有被替代的大势.但JS原生API写法依旧:并且 ...
- 认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法
(一)认识JQuery JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法 JQuery的主旨:以更少的代码,实现更多的功能 (二)JQue ...
- 百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例
百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例 相关说明 1. 界面查看: 吐槽贴:百度地图 api 封装 的实用功能 [源码下载] 2. 功能说明: 百度地图整合功能分享修 ...
- 原生JS和jQuery操作DOM的区别小结
一.Js原生对象和jQuery实例对象的相互转化: (1).原生JS对象转JQ对象: $(DOM对象); (2). JQ对象转原生JS对象: $(DOM对象).get(index); //注意区分eq ...
随机推荐
- 谨慎能捕千秋蝉(一)——XSS
最近在研读<白帽子讲web安全>和<Web前端黑客技术揭秘>,为了加深印象,闲暇之时做了一些总结. 下面是书中出现的一些专有词汇: POC(Proof Of Concept): ...
- (五)Lua脚本语言入门
---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...
- 传输控制协议TCP
TCP主要特点: (1)面向连接 (2)只能是点到点 (3)可靠的传输协议 (4)全双工通信,各自各自的读写缓冲区,应用层吧数据交给发送缓冲区,tcp合适就发送了,接受的时候tcp写入接受缓冲区,应用 ...
- [Linux] - xxx 不在 sudoers 文件中。此事将被报告。
redhat系统: linux中创建用户命令为:useradd 用户名, eg: useradd test 指定密码:passwd test 但是有时候我们需要使用test运行执行一些root用户才有 ...
- 我的Java开发之路
拉拉溜溜学习了半年了.才发现自己现在才进入面向对象.
- 远程线程注入方法CreateRemoteThread
最近在整理学习Windows注入方面的知识,这个远程注入前面早写过,现在看看人家博客的理解整理,整理, 需要源码的可以到我的github上下载. 链接是 https://github.com/Ars ...
- 导航原理实验系统软件——node-webkit初探
最近,和同学接手了一个某军校<导航原理>课程的教学实验平台软件开发工作. 本项目在客户端主要用到的技术便是node-webkit,使用它能够以Web的方式开发桌面应用程序.下面,就以本项目 ...
- FineUIMvc随笔 - 不能忘却的回发(__doPostBack)
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户反馈 有网友在官方论坛抛出了这么一个问题,似乎对 FineUIMvc 中的浏览器端与服务器端的交互方式很有异议. 这里面的关 ...
- Asp.Net 常用工具类之加密——非对称加密RSA算法
踏入程序员这个行业也有几年了,几年中有收获(技术加强),有付出(时间和亚健康状态).当然喏,并不后悔,代码路还长!!! On The Way,永不止步!!! 开发过程中也积累了一些自己的经验.代码块和 ...
- PHP控制反转(IOC)和依赖注入(DI)
先看一个例子: <?php class A { public $b; public $c; public function A() { //TODO } public function Meth ...