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

最新文章

  1. Xcode 快速开发 代码块
  2. WebSocket 学习笔记--IE,IOS,Android等设备的兼容性问题与代码实现
  3. 【读书笔记】iOS网络-同步请求,队列式异步请求,异步请求的区别
  4. UEFI与MBR区别
  5. 无废话ExtJs 入门教程七[登陆窗体Demo:Login]
  6. An Unfair Game-[ACdream1035]
  7. jquery实时监测手机号是否符合规则,并根据手机号检测结果将提交按钮设为不同状态
  8. css定位之绝对定位
  9. angularJs中将字符串转换为HTML格式
  10. git stash 暂存当前修改
  11. JQuery好用的日期选择控件 DatePicker
  12. APP运营干货分享
  13. (转)Apple Push Notification Services in iOS 6 Tutorial: Part 2/2
  14. linux 终端控制-- 多彩输出 格式排版
  15. HTML5 拖放及排序的简单实现
  16. android模拟器网络设置(局域网)
  17. Maven搭建Hadoop开发环境
  18. [Tyvj 1728] 普通平衡树
  19. Python进阶之迭代器和生成器
  20. 在eclipse的配置文件里指定jdk路径

热门文章

  1. MetInfo5.3管理员密码重置漏洞
  2. 如何更换织梦cms系统的网站小图标
  3. pycharm remote debug
  4. Linux中bash shell环境变量
  5. python常用函数进阶(2)之map,filter,reduce,zip
  6. java中map,set的简单使用
  7. 【SVN】SVN Working copy is too old
  8. codeforces 340 A. The Wall
  9. linux自学
  10. 你了解HTTPS,但你可能不了解X.509