Javascript基础简单汇总(一):元素获取

在页面脚本中,如果要对页面元素进行操作,那么我们就要获取到这个元素

那么在获取元素之前首先得要了解什么是DOM(document object  model)

在DOM,元素是以节点的形式表示的,每一个节点都是对象,我们平时写的特效也就是修改的节点对象的属性来的,这个就是传说中的DOM操作

而节点树其实也就是元素的父子级关系的树状图而已,所以啊,不要想的太复杂

这个元素节点了原生JS不能直接操作的,只能通过document这个文档对象再去获取

比如我要通过元素ID名获取元素:

document.getElementById("idName")

这种方式是很多人喜欢的,因为它属于单词最短的一个。但是工作过或者有过一定知识储备的人就知道,ID命名的元素是比较少的,所以这种情况真正用的时候还是比较少的

布局的时候一般情况下class命名比较多的,当然通过Class类名获取元素的情况是有的:

document.getElementsByClassName("className")

它获取的元素不是单个,而是一个元素集合(HTMLcollection),如果要获取单个具体的元素,要在获取之后加上一个下标[num]就可以了

但是getElementsByClassName并不是一个兼容很好的属性,IE9,FF5+以下浏览器是没有这个属性的,这个也是一个很蛋疼的问题,所有也用得少。

如果一定要通过class属性获取元素的话,也可以写它的兼容方法:

 1 function getClass(obj,className){
 2       var HTMLCollection = [];
 3       var HTMLArr = document.getElementsByTagName("*");
 4       for(var i=0;i<HTMLArr.length;i++){
 5             if(HTMLArr[i] == className){
 6                  HTMLCollection.push(HTMLArr[i]);
 7            }
 8       }
 9       return HTMLCollection;

除了类名和ID名之外,也是可以通过标签获取的,方法也很简单,获取到元素以后,跟类名获取一样是存在集合中的,如果要访问单个就要通过下标获取

代码如下:

document.getElementsByTagName("TagName");

这些方法或多或少都有各自的缺点,要么太长,要么不能直接获取想要的元素,如果父子关系比较复杂的话,一次获取的几率还比较小的

为什么很多人喜欢用JQ,因为JQ操作元素通过$()连接选择器就可以了,不用担心,JS也有类似的方法:

document.querySelectorAll("Select")

这种方法很方便的可以直接通过选择器获取,返回值nodeList;

以上就是平时用的最多的元素获取方式,但此方法都是从document下获取的,如果结构很复杂,这些方法很显然就不够用了

不用担心,DOM还给我们提供了很多节点操作方法,在下一章再跟大家见面吧

本人第一篇文章,先从简单的说起,今后后陆续更新,如果有什么建议,错误或者想跟我直接交流的可以加我的QQ:3106788893

时间: 2024-11-08 18:13:57

Javascript基础简单汇总(一):元素获取的相关文章

JavaScript基础--简单功能的计算器(十一)

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

javascript学习之路之元素获取和设置属性

收拾心情,学习学习js!总结下自己的学习所得! 现有的有三种方法可以获取元素的节点,分别是通过元素ID,通过标签名和类名来获取的 1.GetElmentById:将返回一个与那个有给定ID属性的值的元素节点对应的对象,方法只有一个参数,元素的id属性的值必须放在单引号或双引号里 documrnt.GetElmentById(id) 2.GetElmentsByTagName:方法返回一个对象数组,每个对象分别对应这文档里有给定标签的一个元素,它的参数就是标签的名字 dovument.GetElm

JavaScript基础 简单的二级联动下拉列表

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

JavaScript基础 IE 7,8可用 获取网页的宽度与高度 document.documentElement.clientHeight

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

javascript基础dom操作html元素

语法:document.getElementById("id"); 举例:<script> window.onload = funtion () { var oDiv = document.getElementById("div1");// js选择html元素id元素 oDiv.style.color = "red";//js控制html元素css样式color颜色: } <script> <body> &l

javaScript 基础知识汇总(八)

1.Map Set WeakMap 和WeakSet Map 是一个键值对的集合,主要的方法包括: new Map() 创建Map map.set(key,value)  根据键(key)存储值(value). map.get(key) 根据键返回值,如果map中该值不存在,返回undefined map.has(key) 如果键值存在,返回true,否则返回false map.delete(key) 移除该键的值 map.clear()   清空map map.size   返回当前元素个数

JavaScript 基础知识汇总目录

一.标签.代码结构.现代模式.变量.数据类型.类型转换 GO 二.运算符.值的比较.交互.条件运算符.逻辑运算符 GO 三.循环 while 和 for .switch语句.函数.函数表达式和箭头函数 GO 四.对象(创建.属性的添加和删除.对象中括号的使用,属性计算,属性值简写,检查,for .. in 循环,引用复制,比较引用,常量对象,对象复制合并)GO 五.垃圾回收.Symbol类型.对象方法和this.构造函数和操作符 new GO 六.基本类型和对象的区别,作为对象的基本类型,数字类

一个简单的、面向对象的javascript基础框架

如果以后公司再能让我独立做一套新的完整系统,那么我肯定会为这个系统再写一个前端框架,那么我到底该如何写这个框架呢? 在我以前的博客里我给大家展示了一个我自己写的框架,由于当时时间很紧张,做之前几乎没有完整的思考过我到底该如何去写这个框架,所以事后对于这个框架我有很多遗憾之处,当我重构过一次代码后我就没再做过任何重构操作的工作,因为我根本不想再去给它修修补补了,之所以有这个想法,就是我对我写的那个框架的基础架构不满意. 为什么不满意这个基础架构了?我们先来看看我当时封装框架的方式: (functi

Javascript基础篇小结

Javascript基础篇小结 字数9973 阅读3975 评论7 喜欢28 转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器本身也是一个应用程序 浏览器本身只懂得解析HTML 调用浏览器这个应用程序的一个功能绘制 1.javascript介绍 JavaScript操作DOM的本质是=获取+触发+改变 目的:就是用来操作内存中的DOM节点 修改D