js中script的上下放置区别,Dom的增删改创建操作实例分析


Posted in Javascript onDecember 16, 2019

本文实例讲述了js中script的上下放置区别,Dom的增删改创建操作。分享给大家供大家参考,具体如下:

回顾

javascript分为三部分:

1、ECMAScript5.0 es6(阮一峰) es7 es8    es6中有类的概念

声明变量 var  let(es6中语法)
内置函数 Date Math.random

if else  switch while do-while  for

2、DOM  Document Object Model

获取DOM事件的三种方式

  • getElementById()
  • getElementsByTagName()
  • getElementsByClassName()

DOM的三步走

  • ①、事件对象
  • ②、事件、
  • ③、事件驱动

值操作: <div></div> too liang
oDiv.innerText='too liang';仅仅设置文本
oDiv.innerHTML='<h2>too liang</h2>';文本和标签一起渲染
oInput.value='alex';仅仅是对表单控件有效

标签属性操作;

设置类名:oDiv.className+=' active';追加类名、
设置id:oDiv.id='box';

样式操作:

oDiv.style.(css中所有的样式属性)

注意驼峰体:如果margin-left 使用js的时候marginLeft

3、BOM

<script></script>在head和body中放置的区别

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script>
    //加载顺序:1DOM元素加载 2图片加载
    //1等待DOM和图片资源加载完成之后才调用window.onload后面的方法
    //2事件覆盖事件,也即同时存在多个window.noload时,后面的覆盖前面的
    window.onload=function () {
      // var oBtn=document.getElementById('btn');
      // console.log(oBtn);
      function $(idName){
        return document.getElementById(idName);
      }
      $('btn').onclick=function(){



。。。。。。
      };
    }
  </script> <!--没有操作DOM时可以将script放在这里面,如果要使用DOM的相关操作,使用window.onload,建议最好写在body里面-->
</head>

DOM的增删改查

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<button id="btn">追加</button>
<button id="del">删除</button>
<div id="box">
  <p>测试段落</p>
</div>
  <script>
    //加载顺序:1DOM元素加载 2图片加载
    //1等待DOM和图片资源加载完成之后才调用window.onload后面的方法
    //2事件覆盖现在,同时存在多个window.noload时,后面的覆盖前面的
    window.onload=function () {
      // var oBtn=document.getElementById('btn');
      // console.log(oBtn);
      function $(idName){
        return document.getElementById(idName);
      }
      $('btn').onclick=function(){
        //1DOM的创建
        var oP=document.createElement('p');
        //2 DOM的追加
        $('box').appendChild(oP);
        //3 DOM的修改
        oP.innerText='alex';
        oP.id='p1';//设置id
        var oA=document.createElement('abc');//自定义创建
        oA.innerText='321';
        oA.id='abc';
        $('box').insertBefore(oA,oP);//在oA之前插入
      };
      //4 DOM的删除操作
      $('del').onclick=function(){
        $('box').removeChild($('p1'));
        $('box').removeChild($('abc'));
      }
    }
  </script>
</body>
</html>

应用场景分析

如果是一开始页面有初始化渲染开销;应用:频繁的切换:display:none|block  或者 追加className 删除className

如果是DOM的创建和删除 如果你是频繁的切换,对DOM的性能消耗很大,所以最好应用在少量的切换上面

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript实现的listview效果
Apr 28 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
js给selected添加options的方法
May 06 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
Apr 25 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
Jun 16 Javascript
Vue概念及常见命令介绍(1)
Dec 08 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
Apr 20 Javascript
angular使用post、get向后台传参的问题实例
May 27 Javascript
基于vue1和vue2获取dom元素的方法
Mar 17 Javascript
小程序指纹验证的实现代码
Dec 04 Javascript
多个Vue项目部署到服务器的步骤记录
Oct 22 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
Dec 16 #Javascript
javascript自定义右键菜单插件
Dec 16 #Javascript
js中的面向对象之对象常见创建方法详解
Dec 16 #Javascript
js实现数字滚动特效
Dec 16 #Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 #Javascript
js实现内置计时器
Dec 16 #Javascript
js实现秒表计时器
Dec 16 #Javascript
You might like
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
js单例模式详解实例
2013/11/21 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
requirejs + vue 项目搭建详解
2017/06/16 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python银行系统实现源码
2019/10/25 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
大学生个人自我鉴定
2013/12/03 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
采购求职信
2014/03/17 职场文书
小学开学典礼主持词
2014/03/19 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
小石潭记导游词
2015/02/03 职场文书
工程服务质量承诺书
2015/04/29 职场文书
丧事答谢词大全
2015/09/30 职场文书
vue实现在data里引入相对路径
2022/06/05 Vue.js