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 相关文章推荐
XRegExp 0.2: Now With Named Capture
Nov 30 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
js调用后台servlet方法实例
Jun 09 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
AngularJS应用开发思维之依赖注入3
Aug 19 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 Javascript
使用JS和canvas实现gif动图的停止和播放代码
Sep 01 Javascript
小程序获取周围IBeacon设备的方法
Oct 31 Javascript
JS原型与继承操作示例
May 09 Javascript
微信小程序实现签字功能
Dec 23 Javascript
es6数组之扩展运算符操作实例分析
Apr 25 Javascript
实例分析javascript中的异步
Jun 02 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之require/include顺序 推荐
2011/01/02 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
php中的观察者模式简单实例
2015/01/20 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
入党政审材料范文
2014/12/24 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏
React更新渲染原理深入分析
2022/12/24 Javascript