浅析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 相关文章推荐
jquery.ui.draggable中文文档
Nov 24 Javascript
原生js 秒表实现代码
Jul 24 Javascript
JS 实现获取打开一个界面中输入的值
Mar 19 Javascript
jquery ready函数、css函数及text()使用示例
Sep 27 Javascript
js获取客户端网卡的IP地址、MAC地址
Mar 26 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
JavaScript数组去重的两种方法推荐
Apr 05 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
Nov 16 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
vue data恢复初始化数据的实现方法
Oct 31 Javascript
详解React 条件渲染
Jul 08 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
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
python线程池的实现实例
2013/11/18 Python
浅析Python编写函数装饰器
2016/03/18 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
Python中的引用知识点总结
2019/05/20 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
python中 * 的用法详解
2019/07/10 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
对祖国的寄语大全
2014/04/11 职场文书
伊索寓言教学反思
2014/05/01 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
2014年售票员工作总结
2014/11/19 职场文书
领导视察通讯稿
2015/07/18 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL