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 相关文章推荐
JSP中使用JavaScript动态插入删除输入框实现代码
Jun 13 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 Javascript
javascript实现网页端解压并查看zip文件
Dec 15 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
javascript 利用arguments实现可变长参数
Nov 21 Javascript
javascript实现右下角广告框效果
Feb 01 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
AngularJS  ng-repeat遍历输出的用法
Jun 19 Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 Javascript
详解微信小程序开发用户授权登陆
Apr 24 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
Angular6项目打包优化的实现方法
Dec 15 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
mysql5写入和读出乱码解决
2006/11/25 PHP
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
python算法学习之计数排序实例
2013/12/18 Python
Python的pycurl包用法简介
2015/11/13 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python实现飞船大战
2020/04/24 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
keras K.function获取某层的输出操作
2020/06/29 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
给客户的道歉信
2014/01/13 职场文书
大学生社会实践方案
2014/05/11 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
2019年最新借条范本!
2019/07/08 职场文书
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python