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 相关文章推荐
js的event详解。
Sep 06 Javascript
jquer之ajaxQueue简单实现代码
Sep 15 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
js判断IE浏览器版本过低示例代码
Nov 22 Javascript
javascript生成随机数的方法
May 16 Javascript
详解JavaScript中的every()方法
Jun 08 Javascript
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
React BootStrap用户体验框架快速上手
Mar 06 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
一文了解Vue中的nextTick
May 06 Javascript
使用Angular material主题定义自己的组件库的配色体系
Sep 04 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(二)
2012/03/21 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
python开发之thread线程基础实例入门
2015/11/11 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
国际贸易个人求职信范文
2014/01/04 职场文书
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
计生工作先进事迹
2014/08/15 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
小学工作总结2015
2015/05/04 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书