JS选取DOM元素常见操作方法实例分析


Posted in Javascript onDecember 10, 2018

本文实例讲述了JS选取DOM元素常见操作方法。分享给大家供大家参考,具体如下:

JS选取DOM元素的方法

注意:原生JS选取DOM元素比使用jQuery类库选取要快很多

1、通过ID选取元素

document.getElementById('myid');

2、通过CLASS选取元素

document.getElementsByClassName('myclass')[0];

3、通过标签选取元素

document.getElementsByTagName('mydiv')[0];

4、通过NAME属性选取元素(常用于表单)

document.getElementsByName('myname')[0];

JS修改CSS样式

document.getElementById('myid').style.display = 'none';

JS修改CLASS属性

document.getElementById('myid').className = 'active';

如果有多个CLASS属性,即用空格隔开

document.getElementById('myid').className = 'active div-1';

移除该元素上的所有CLASS

document.getElementById('myid').className = '';

注意:使用classList会优于使用className

document.getElementById('myid').classList.item(0);//item为类名的索引
document.getElementById('myid').classList.length;//只读属性
document.getElementById('myid').classList.add('newClass');//添加class
document.getElementById('myid').classList.remove('newClass');//移除class
document.getElementById('myid').classList.toggle('newClass');//切换,有则移除,没有则添加
document.getElementById('myid').classList.contains('newClass');//判断是否存在该class

补充:addremove方法不允许链式操作,因为返回的都是undefined,其次,也不允许同时添加或删除多个class,可以自行扩展一下

DOMTokenList.prototype.adds = function(tokens){
 tokens.split(' ').forEach(function(token){
  this.add(token);
 }).bind(this));
 return this;
};
var clList = document.body.classList;
clList.adds('a b c').toString();
//a b c

JS修改文本

document.getElementById('myid').innerHTML = '123';

JS创建元素并向其中追加文本

var newdiv = document.createElement('div');
var newtext = document.createTextNode('123');
newdiv.appendChild(newtext);
document.body.appendChild(newdiv);

同理:removeChild()移除节点,并返回节点

cloneNode()复制节点

insertBefore()插入节点(父节点内容的最前面)

注意:insertBefore()有两个参数,第一个是插入的节点,第二个是插入的位置

例子:

var list = document.getElementById('myList');
list.insertBefore(newItem,list.childNodes[1]);
//插入新节点newItem到list的第二个子节点

JS返回所有子节点对象childNodes

var mylist = document.getElementById('myid');
for(var i=0,i<mylist.childNodes.length;i++){
console.log(mylist.childNodes[i]);
}

firstChild返回第一个子节点

lastChild返回最后一个子节点

parentNode返回父节点对象

nextSibling返回下一个兄弟节点对象

previousSibling返回前一个兄弟节点对象

nodeName返回节点的HTML标记名称

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
Jul 18 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
JSON对象 详解及实例代码
Oct 18 Javascript
原生js实现弹出层效果
Jan 20 Javascript
微信小程序之picker日期和时间选择器
Feb 09 Javascript
JavaScript实现的选择排序算法实例分析
Apr 14 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
Jul 25 Javascript
vue-cli 目录结构详细讲解总结
Jan 15 Javascript
bootstrap-paginator服务器端分页使用方法详解
Feb 13 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 Javascript
js事件机制----捕获与冒泡机制实例分析
May 22 Javascript
微信小程序分享海报生成的实现方法
Dec 10 #Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 #jQuery
详解Angular Forms中自定义ngModel绑定值的方式
Dec 10 #Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 #jQuery
微信小程序与后台PHP交互的方法实例分析
Dec 10 #Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 #Javascript
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 #jQuery
You might like
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
PHP图片上传代码
2013/11/04 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
vue实现图书管理系统
2020/12/29 Vue.js
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
什么样的创业计划书可行性高?
2014/02/01 职场文书
客户接待方案
2014/02/26 职场文书
运动会演讲稿200字
2014/08/25 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
标准发言稿结尾
2019/07/18 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server