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 相关文章推荐
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
javascript结合Canvas 实现简易的圆形时钟
Mar 11 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
Aug 04 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
Dec 12 Javascript
jquery表单提交带错误信息提示效果
Mar 09 Javascript
Angular5中调用第三方js插件的方法
Feb 26 Javascript
解决LayUI表单获取不到data的问题
Aug 20 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 Javascript
js布局实现单选按钮控件
Jan 17 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
smarty半小时快速上手入门教程
2014/10/27 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
不安全的常用的js写法
2009/09/15 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
numpy排序与集合运算用法示例
2017/12/15 Python
python实现决策树
2017/12/21 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Django视图扩展类知识点详解
2019/10/25 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
python 实现两个npy档案合并
2020/07/01 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
毕业生物理教师求职信
2013/10/17 职场文书
会计学自荐信
2014/06/03 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
消费者理赔投诉书
2015/07/02 职场文书
学术会议开幕词
2016/03/03 职场文书