js-DOM中基础选择器的整理

DOM中基础选择器的整理

注意:DOM中选择器返回是数组类型的都是伪数组,只能拥有数组的索引以及length,数组的其他方法是不可以使用的!

一:DOM中的选择器

1.getElementById(id)        //获取指定元素的ID元素
2.getElementsByTagName()    //获取相同元素的节点列表,通过标签名选择元素,返回值是一个数组
3.getElementsByName()       //通过name值获取元素,返回值是数组,通常用来获取有name的input的值
4.getElementsByClassName()  //通过class名获取元素,返回值(HTML集合)是数组n

  tip:这是四个基础的选择器,后面在其基础上在拓展

二:ES5选择器:就两个,但功能强大(都是对象的方法)

  注意:兼容性自行测试

1:document.querySelector(); //可以获取所有类型的选择器,但是只能获取一个,返回的值是单个元素

拓展:querySelector返回dom的子元素中第一个符合selectors选择器字符串的元素,无匹配项则返回null,在获取时, 可以直接在括号内使用css选择器的样式,比如:obox = document.querySelector("#box>h2");

2:document.quertSelectorAll(); //可以获取所有类型的选择器,返回的是伪数组

拓展:和上面一样,不同的是它返回的是匹配的所有元素列表,是一个nodeList集合,而且是non-live的(理解为不会实时更新)
这个获取是比较重要的,需要深入理解一下。
console.log( document.querySelectorAll(‘#contani div‘) )

用querySelectorAll去获取后代的后代选择器,返回时多少,类似于(‘div div div‘)
注意:关于querySelectorAll另外要注意的一点是:当且仅当querySelectorAll的选择器字符串是‘div div’时(如:dom.querySelectorAll(‘div div’)),它匹配的元素包括了dom,也就是说如果该dom元素和它的子元素构成了div div这种父子结构时,该dom也会被匹配到。

eg:dom.querySelectorAll(div div div);
dom.querySelector(contani).querySelectorAll(div div);
//当构成了div div父子结构,前者的div认为是匹配到了dom元素,此时的dom.querySelector(contani).querySelectorAll(div div);
等同于dom.querySelector(contani).querySelectorAll(div);都是选择contani的后代div元素 

补充:non-live(不是实时更新),关于getElementsTagName();与dom.querySelectorAll();

在获取基础选择中选择器,有个getElementsTagName();获取标签(元素)选择器,这个标签选择器获得节点集合(列表)是实时更新得到,

dom.querySelectorAll();不是实时更新的;下面测试一下,当插入了一个新的节点后,获取到的原选择器否会更新;

从上面的测试中可以看出,当追加了新的节点的时候,querySelector();获取的节点集合并没有刷新,而getElementsTagName();获取的html集合是刷新的
有人会问,明明用的是className()测试的,跟tagName()有什么关系呢?因为如果直接用tagName是没有办法直接获取到box里面的div的,这时候委婉的用className来测试一下,可以得出同样的效果,读者也可以自行测试一下。

补充两点:这两个都是dom的属性,不是方法
根据父级,选择子级:
  oDiv.children; //返回一个伪数组
根据子级,选择父级:
  oSpan.parentNode; //返回一个元素

原文地址:https://www.cnblogs.com/jiuxia/p/11410319.html

时间: 2024-10-31 19:06:10

js-DOM中基础选择器的整理的相关文章

js—— DOM中的node类型(二)

DOM中的node类型 DOM1中定义了一个Node接口,这个接口在js中作为Node类型实现,除IE外,其他浏览器都可以访问到这个类型.Js中所以节点类型都继承自Node类型,节点类型都享有共同的·基本属性和方法. 每个节点都有nodeType属性,表明节点类型,由12个常量表示,任何节点必居其一. Node.ELEMENT_NODE 1 元素节点 Node.ATTRIBUTE_NODE 2 属性节点 Node.TEXT_NODE 3 文本节点 ...... 常用的为以上三种,还有其他类型可去

jquery.js 库中的 选择器

<html><head><script type="text/javascript" src="jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $("button").click(function(){ $(this).hide();  这个  this

JS DOM中Ajax的使用

一.概念 全称:Asynchronors Javascript XML  异步JS数据交换格式. [Asynchronous]:异步的,即在执? AJAX 请求时不会阻塞后?代码的运?.[JavaScript]:使? JavaScript 实现浏览器与服务器之间的数据交互.[XML]:?种数据结构,AJAX 创建之初在与服务器进?数据交换时,使?的数据结构就是 XML.但是现在已经慢慢被 JSON 数据结构所取代. 二.步骤 1. 创建 XMLHttpRequest 对象. //1.:创建 XM

js DOM Element属性和方法整理----转载

节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. childNodes获取到的是NodeList children获取到的是HTMLCollection NodeList and HTMLCollection 他们都提供了name(Number index)方法用来索引元素,可以直接用[index]来引用: 他们的区别在于NodeList没有提供namedItem(String name)

js三种基础数组排序算法整理

数组排序,大概是每个程序员必须掌握的基本算法 ,作为一个刚入门的前端小卒,再被各种面试各种排序折磨过后 ,看过很多别人写的 算法 ,但看总归是理解的不是那么深刻 ,便想着自己整理一下这最基本的三个排序算法 ,希望对还在学习的你有些许帮助 .比较基本的三种算法 .冒泡.插入 .快速 . 首先来看冒泡排序法 ,基本原理其实就是对数组进行两层循环,外层循环控制次数,数组中有多少个成员,便是要进行多少次内层遍历,不断地将当前成员和下一成员进行对比 ,其实在群众偶其中有很多次是重复对比的 ,先看这样一个写

JS学习之DOM节点的关系属性封装、克隆节点、Dom中Style常用的一些属性等小结

JS DOM节点: 在JS DOM中节点的关系被定义为节点的属性: 通常有以下几种节点之间的关系: (这里的关系是所有浏览器都支持的) parentNode    父节点 childNodes    子节点 firstChild    父节点里的第一个子节点 lastChild     父节点里的最后一个子节点 nextSibling    与子节点并列的下一个兄弟节点 previousSibling   与子节点并列的上一个兄弟节点 火狐与谷歌支持而ie8不支持的节点关系有: previous

JS Dom节点操作demo!

通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ return document.createElement(tagName); } var table = c('table'); var tbody = c('tbody'); table.appendChild(tbody); for(var i = 0;i<4;i++){ var tr = c(

jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jquery筛选方法

jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jquery筛选方法 一丶什么是JQuery JQuery: ???????JQuery是js的一个库,高度封装了js常用的功能,提供简便方法,调用简单,提高开发效率 ??????js库是包含了把复杂的功能封装到简单的方法中 JQuery的两大特性: ???????链式编程:可以.的形式实现多个功能 ?

基于JS的DOM 编程基础和Json语法及JS下的AJAX基础

1.在dom编程中:     注意:使用dom操作一般在页面完全载入之后,一般在window_onload事件里操作dom nodeName  表示节点的名称如:<input   type= "button"  value="确定" />    此时nodeName=“input” ; nodeValue  表示节点的值如<p>aaa</p> 此时的nodeValue="aaa",而nodeName="