DOM中元素选择器

  在DOM中我们可以将元素选择器分为两类;1、元素节点选择器;2、其它节点选择器。通过选择器选择HTML中的元素以对其进行操作,以此实现用JS对页面的操作。

  一、元素节点选择器

  1.ID选择器:document.getElementById()

  通过标签的ID名选择,返回的是单个的值,在HTML中ID具有唯一性;

  2.class选择器:document.getElementsByClassName()

var aEle=document.getElementsByClassName("myClass")  //选择文档中所有class名为myClass的元素,返回一个数组。

  通过标签的class名进行选择,返回的是一个数组,当我们需要对单个进行操作时,可利用数组的操作来选择单个的元素;这里需要注意的是,不同于ID选择器,因为是一个数组所以是Elements,注意有一个s,又由于在ES6中有class关键字,为了避免重复这里用的是ClassName。

  3.标签选择器:document.getElementsByTagName()

  通过标签名进行选择,如下选择文档中所有span标签。

var aspan=document.getElementsByTagName("span")  //选择DOM文档中所有的<span></span>标签,返回一个数组。

  4.name选器:document.getElementsByName()

  语法如下:

var auser=document.getElementsByName("user");

  name选择器一般用于表单,含有name属性的标签;同样,返回的是一个数组。

  5.高级选择器:ES5新增的选择器

  querySelector()和querySelectorAll()

  ① querySelector()  返回的是单个对象

  语法如下:

var ele = document.querySelector("#box");
var ele1 = document.querySelector(".class");
var ele2 = document.querySelector("span");
var ele3 = document.querySelector(".msg h2");
var ele4 = document.querySelector(".msg>h2");

  从上面的代码我们可以看到,这个选择器的功能强大到出乎你的想象,甚至支持css中的所有选择器。

  ②querySelectorAll()  返回一个数组对象

  语法同querySelector();

  6.关系选择器

  我将关系选择器分成三类:① 父选子② 子选父③ 兄弟

  ① 父选子

var omsg = document.querySelector(".msg");
omsg.children //所有子元素;
omsg.firstElementChild //第一个子元素;
omsg.lastElementChild //最后一个子元素;

  ②子选父

var    aspan = document.querySelector("span");
span.parentNode; //选择span 的父元素;

  ③兄弟选择器

var    aspan=document.querySelector("span");
aspan.previousElementSibling //选择span的上一个兄弟元素
aspan.nextElementSibling //选择span的下一个兄弟元素

Tip:上面所提到的利用选择器返回一个数组,该数组是一个伪数组,当需要对单个元素进行操作的时候,可以对该数组进行索引,遍历,但是要注意的是,不能使用数组的方法!

DOM选择器之元素选择器的更多相关文章

  1. jQuery选择器之元素选择器

    元素选择器:根据给定(html)标记名称选择所有的元素. 描述: $('element') 搜索指定元素标签名的所有节点,这是一个合集的操作.同样的也有原生方法getElementsByTagName ...

  2. CSS选择器的组合选择器之后代选择器和子元素选择器

    实例代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  3. CSS选择器之通配符选择器和多元素选择器

    1.通配符选择器 如果希望所有的元素都符合某一种样式,可以使用通配符选择器. 基本语法: *{margin:0; padding:0} 可以让所有的html元素的外边距和内边距都默认为0. 写一段ht ...

  4. 深入学习jQuery选择器系列第五篇——过滤选择器之内容选择器

    × 目录 [1]contains [2]empty [3]parent[4]has[5]not[6]header[7]lang[8]root 前面的话 本文介绍过滤选择器中的内容选择器.内容选择器的过 ...

  5. 深入学习jQuery选择器系列第三篇——过滤选择器之索引选择器

    × 目录 [1]通用形式 [2]首尾索引 [3]奇偶索引[4]范围索引 前面的话 上一篇介绍了过滤选择器中的子元素选择器部分,本文开始介绍极易与之混淆的索引选择器 通用形式 $(':eq(index) ...

  6. Jquery选择器之基本选择器

    id选择器 共同点: text:代表标签之间的文本值 返回值:均为列表 根据给定的ID值匹配一个标签元素,如果id值中有元字符(如 !"#$%&'()*+,./:;<=> ...

  7. jQuery选择器之层次选择器Demo

    测试代码: 02-层次选择器.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  8. CSS选择器之基本选择器总结

    一.元素选择器(所有浏览器支持) 元素选择器(标签名选择器)其实就是文档的元素,如html,body,p,div等等, 下面例子中选择了span元素,并设置了字体颜色为红色. <body> ...

  9. jquery选择器之内容选择器

    HTML示例代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

随机推荐

  1. JavaScript数组高性能去重解决方案

    在大多数的人眼里,数组去重是一个很简单的课题,很多人甚至熟练掌握了多种数组去重的方法,然而大多时候,我们却忽略了数组去重所消耗的时间资源.譬如我们在做前端性能优化的时候,又有多少人会考虑JavaScr ...

  2. 《VR入门系列教程》之3---运动追踪与输入设备

    运动追踪设备    第二种可以使人脑相信它真实处于虚拟世界的关键技术就是运动追踪技术,它可以通过追踪头部的运动状态实时更新渲染的场景.这与我们在真实世界中观看周围非常类似.    高速的惯性测量单元( ...

  3. php 排序和置顶功能实现

    (1)排序操作思路 一般来说都是按照发布时间排序.时间戳大的靠前,所以用倒序desc,而不是asc (2)置顶操作思路: 点击置顶时,修改数据库addtime字段值为当前时间即可.因为排序是按照时间戳 ...

  4. net core 序列化与反序列化与遇到的几个坑

    之前在C#里面序列化直接引入命名空间后使用JavaScriptSerializer jss = new JavaScriptSerializer();就可以用, 而net core里面不这样用了,我们 ...

  5. Spring:IOC本质分析探究

    IOC本质分析 分析实现 我们先用我们原来的方式写一段代码 . 先写一个UserDao接口 public interface UserDao { public void getUser(); } 再去 ...

  6. php的中文字符

    在使用substr截取字符窜的时候出现乱码的问题 一直任认为字符串是2个字节,直到多次才尝试才总算知道问题所在 php的utf-8字符是每个字符3个字节 而gbk字符是每个字节2个字符 单个字母和符号 ...

  7. ArchSummit分享 | 高德地图App架构演化与实践

    讲师介绍 郝仁杰,高德地图无线开发专家.在7月13日落幕的2019年ArchSummit峰会上就高德地图近几年的App架构演化和实践进行了分享. 背景概述 高德是国内领先的数字地图内容.导航和位置服务 ...

  8. 【Java】Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 1099

    详细信息如下: Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: ...

  9. ASP.NET Core - 实现自定义WebApi模型验证

    Framework时代 在Framework时代,我们一般进行参数验证的时候,以下代码是非常常见的 [HttpPost] public async Task<JsonResult> Sav ...

  10. postman使用pre-request script计算md5

    接口加了验签逻辑,具体是md5(salt+时间戳).被某君吐槽说测试不方便啊能不能先关掉.其实没有必要打开又关闭验签功能,postman的pre-request script功能完全可以模拟客户端加密 ...