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 相关文章推荐
同一个表单 根据要求递交到不同页面的实现方法小结
Aug 05 Javascript
location.search在客户端获取Url参数的方法
Jun 08 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
从零学JSON之JSON数据结构
May 19 Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
Layui 动态禁止select下拉的例子
Sep 03 Javascript
JS内置对象和Math对象知识点详解
Apr 03 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
UCenter Home二次开发指南
2009/05/28 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
【python】matplotlib动态显示详解
2019/04/11 Python
Python列表解析操作实例总结
2020/02/26 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
雅虎笔试题(字符串操作)
2015/03/24 面试题
2014年幼儿园元旦活动方案
2014/02/13 职场文书
中学生检讨书1000字
2014/10/28 职场文书
同事打架检讨书
2015/05/06 职场文书
反腐倡廉影片观后感
2015/06/08 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python
Python循环之while无限迭代
2022/04/30 Python
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技