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 ...
随机推荐
- 今日头条- iOS客户端 启动速度优化实践
版权声明 作者:今日头条iOS团队 原文:https://techblog.toutiao.com/2017/01/17/iosspeed/ 应用启动时间,直接影响用户对一款应用的判断和使用体验.头条 ...
- 基于服务的SOA架构_后续篇
今天是元宵节,首先祝各位广大博友在接下来的光阴中技术更上一层,事事如意! 昨天简单介绍了一下本人在近期开发过的一个电商购物平台的架构流程和一些技术说明:今天将详细总结一下在项目中用到的各个架构技术的环 ...
- java异常的一些小知识
异常,我们软件都需要面对的一个问题.如何让你的软件更加健壮呢?这是一个值得我们考虑的问题.这里主要为大家介绍一下异常是什么,异常是如何产生的,如何将异常抛出,如何捕获异常,对于异常应该如何处理的个人一 ...
- Orcale 之基本术语二
表空间 表空间是 Orcale 数据库最大的逻辑结构.表空间就是一个或者多个数据文件的集合.所有的数据文件都被逻辑的存放在表空间中. 一个数据库包括 SYSTEM.SYSAUX和TMP三个默认表空间, ...
- Vue2.0源码阅读笔记--生命周期
一.Vue2.0的生命周期 Vue2.0的整个生命周期有八个:分别是 1.beforeCreate,2.created,3.beforeMount,4.mounted,5.beforeUpdate,6 ...
- 游戏UI框架设计(一) : 架构设计理论篇
游戏UI框架设计(一) ---架构设计理论篇 前几天(2017年2月)看到一篇文章,国内王健林.马云等大咖们看好的未来十大最有"钱途"产业中,排名第一的就是"泛娱乐&qu ...
- JS 基础学习随想
2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...
- SecureCRT文件传输模式
前言 如下图所示,SecureCRT6.5.0 有4种文件传输模式. 1)ASCII:最快的传输模式,但只能传文本 2)Xmodem:非常古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的 ...
- linux系统端口查看和占用的解决方案
使用netstat命令查看端口占用情况 netstat -tln 查看什么程序占用端口 netstat -tlnp 过滤端口 netstat -tlnp |grep 8080 杀掉进程 kill - ...
- 了解 : angular ng-messages
ng-messages="form['positionTitle' + languageVersion.typeEnum].$error ng-messages="form.pos ...