浅析JS动态创建元素【两种方法】


Posted in Javascript onApril 20, 2016

前言

创建元素有两种方法

      1)将需要创建的元素,以字符串的形式拼接;找到父级元素,直接对父级元素的innnerHTML进行赋值。

      2)使用Document、Element对象自带的一些函数,来实现动态创建元素(创建元素 => 找到父级元素 => 在指定位置插入元素)

 

一、字符串拼接形式

    为了更好的理解,设定一个应用场景。

    随机生成一组数字,将这组数据渲染为条形图的形式,放在div[id="container"]中,如下图

    浅析JS动态创建元素【两种方法】   

<div id="container">
 </div>
 <script>
   window.onload = function () {
     var str='';
     for(var i=0; i<30 ;i++){
       var r = parseInt(Math.random()*100); //随机生成一个数字
       str += '<div>'+r+'</div>'; //拼接str
     }
     document.getElementById('container').innerHTML=str;
   }
 </script>

 二、使用Document、Element对象自带的一些函数

       也设定一个应用场景,如下图

       获取input中的信息,根据右边的按钮,分别插入到下方红色矩形的左边或者右边。

       浅析JS动态创建元素【两种方法】

       解决思路分三步

  1. 创建元素:Document.createElement()
  2. 找到父级元素 :可以通过Id、name、标签名、class、匹配指定的css选择器
  3. 在指定位置插入元素:element.appendChild()、element.insertBefore()       

 实现代码:        

<div id="div-input">
  <input type="text" id="txt_input" value="4"/>
  <input type="button" id="leftInsert" value="左侧入" />
  <input type="button" id="rightInsert" value="右侧入" />
</div>
<div id="container">
  <span>1</span>
  <span>2</span>
  <span>3</span>
</div>
 <script>
   window.onload = function () {
     var inputValue= document.getElementById('txt_input').value;
     document.getElementById('leftInsert').onclick=function(){
       //左侧入
       var span = document.createElement('span'); //1、创建元素
       span.innerHTML=inputValue;
       var container = document.getElementById('container'); //2、找到父级元素
        container.insertBefore(span,container.childNodes[0]);//插入到最左边
     }
     document.getElementById('rightInsert').onclick=function(){
       //右侧入
       var span = document.createElement('span'); //1、创建元素
       span.innerHTML=inputValue;
       var container = document.getElementById('container'); //2、找到父级元素
       container.appendChild(span); //3、在末尾中添加元素
     }
   }
 </script>

以上这篇浅析JS动态创建元素【两种方法】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
索趣科技的答案
Feb 07 Javascript
jquery animate 动画效果使用说明
Nov 04 Javascript
js实现文章文字大小字号功能完整实例
Nov 01 Javascript
JavaScript 消息框效果【实现代码】
Apr 27 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 Javascript
Angular 数据请求的实现方法
May 07 Javascript
浅谈vue首屏加载优化
Jun 28 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 Javascript
深入理解react 组件类型及使用场景
Mar 07 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
ES6新增的数组知识实例小结
May 23 Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 Javascript
纯JS代码实现一键分享功能
Apr 20 #Javascript
JavaScript动态生成二维码图片
Apr 20 #Javascript
JS动态创建元素的两种方法
Apr 20 #Javascript
深入浅析Extjs中store分组功能的使用方法
Apr 20 #Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
Apr 20 #Javascript
JavaScript  cookie 跨域访问之广告推广
Apr 20 #Javascript
JavaScript实现简单Tip提示框效果
Apr 20 #Javascript
You might like
php不用正则采集速度探究总结
2008/03/24 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
php邮件发送的两种方式
2020/04/28 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
layui文件上传实现代码
2017/05/20 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
vue中如何使用ztree
2018/02/06 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Python的高级Git库 Gittle
2014/09/22 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
python如何实时获取tcpdump输出
2020/09/16 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
建设单位项目负责人任命书
2014/06/06 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python