JavaScript中Dom操作实例详解


Posted in Javascript onJuly 08, 2019

本文实例讲述了JavaScript中Dom操作。分享给大家供大家参考,具体如下:

博主将按照增删改查的方式来介绍一下Dom的主要操作。

1、增加节点

添加节点的操作主要分为3步:

(1)创建要添加的新节点
(2)找到要添加到的父节点
(3)父节点添加新节点

参考代码

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title></title>
  <link rel="stylesheet" href="">
  <script>
    function add(){
      //新建要增加的节点
      var li = document.createElement('li');
      var txt = document.createTextNode('北');
      li.appendChild(txt);
      //找到要添加到的父节点
      var ul = document.getElementsByTagName('ul')[0];
      //添加到父节点
      ul.appendChild(li);
    }
  </script>
</head>
<body>
  <input type="button" value="增加一个节点" onclick="add();">
  <ul>
    <li>东</li>
    <li>南</li>
    <li>西</li>
  </ul>
</body>
</html>

2、删除节点

删除节点的操作主要分为3步:

(1)先找到要删除的节点
(2)找到其父节点
(3)调用父节点的removeChild(删除的节点)操作

参考代码

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title></title>
  <link rel="stylesheet" href="">
  <script>
    function del(){
      //找到要删除的节点
      var lis = document.getElementsByTagName('li');
      var lastli = lis[lis.length - 1];
      //让父节点来进行删除操作
      lastli.parentNode.removeChild(lastli);
    }
  </script>
</head>
<body>
  <input type="button" value="删除最后一个节点" onclick="del();">
  <ul>
    <li>东</li>
    <li>南</li>
    <li>西</li>
    <li>北</li>
  </ul>
</body>
</html>

3、修改节点

修改操作主要是修改节点的属性,如修改img节点的src属性

但是有几点需要注意:

(1)如果需要操作dom对象的class属性,应该使用className属性

document.getElementsByTagName('div')[0].className = 'test2';

(2)如果需要修改dom对象的样式,应该使用 obj.style.css样式名

document.getElementsByTagName('div')[0].style.width = parseInt(div.style.width) + 5 + 'px';

(3)遇到有这样带-的样式,如:border-bottom-width,应这样修改样式,将-去掉,然后将-后的首字母改为大写

div.style.borderBottomWidth = parseInt(div.style.borderBottomWidth) + 5 + 'px';

4、查找节点

(1)根据id进行查找,返回对象:

document.getElementById('test1');

(2)根据标签名进行查找,返回对象集合:

document.getElementsByTagName('p');

(3)对于表单元素,按照name值进行查找,返回对象集合:

document.getElementsByName('username');

(4)根据class名进行查找,返回对象集合:

document.getElementsByClassName('test2');

(5)查找对象的子节点,childNodes属性包括文本节点(换行),返回对象集合

alert(document.getElementById('test1').childNodes.length);//打印包括文本节点的数量
alert(document.getElementById('test1').children.length);//children属性虽然不符合w3c规范,但是浏览器支持良好

(6)查找对象的父节点,使用parentNode,返回单个对象

document.getElementsByTagName('p')[0].parentNode.style.border = '1px solid black';

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码效果。

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

Javascript 相关文章推荐
激活 ActiveX 控件
Oct 09 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 Javascript
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
jQuery 自定义函数写法分享
Mar 30 Javascript
探索Emberjs制作一个简单的Todo应用
Nov 07 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
Apr 28 Javascript
js 事件截取enter按键页面提交事件示例代码
Mar 04 Javascript
获取input标签的所有属性的方法
Jun 28 Javascript
bootstrap table小案例
Oct 21 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
vue-cli中安装方法(图文详细步骤)
Dec 12 Javascript
完美解决vue 中多个echarts图表自适应的问题
Jul 19 Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 #Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 #Javascript
ElementUI Tag组件实现多标签生成的方法示例
Jul 08 #Javascript
利用不到200行代码写一款属于你自己的js类库
Jul 08 #Javascript
Vue中util的工具函数实例详解
Jul 08 #Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 #Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 #Javascript
You might like
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
校运会广播稿
2015/08/19 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
Python 中面向接口编程
2022/05/20 Python