JS动态创建元素的两种方法


Posted in Javascript onApril 20, 2016

本文为大家分享了js创建元素的两种方法供大家参考,具体内容如下

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>

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript 面向对象思想 附源码
Jul 07 Javascript
解决遍历时Array.indexOf产生的性能问题
Jul 03 Javascript
JavaScript极简入门教程(一):基础篇
Oct 25 Javascript
jQuery使用hide方法隐藏元素自身用法实例
Mar 30 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
Apr 12 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
Aug 21 Javascript
Bootstrap导航条学习使用(一)
Feb 08 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
使用express+multer实现node中的图片上传功能
Feb 02 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
vue路由结构可设一层方便动态添加路由操作
Aug 31 Javascript
深入浅析Extjs中store分组功能的使用方法
Apr 20 #Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
Apr 20 #Javascript
JavaScript  cookie 跨域访问之广告推广
Apr 20 #Javascript
JavaScript实现简单Tip提示框效果
Apr 20 #Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 #Javascript
javascript实现仿百度图片的瀑布流加载效果
Apr 20 #Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 #Javascript
You might like
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
php生成curl命令行的方法
2015/12/14 PHP
php递归函数怎么用才有效
2018/02/24 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
pywinauto自动化操作记事本
2019/08/26 Python
Python 复平面绘图实例
2019/11/21 Python
Python绘图实现显示中文
2019/12/04 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
露营世界:Camping World
2017/02/02 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
《三顾茅庐》教学反思
2014/04/10 职场文书
防沙治沙典型材料
2014/05/07 职场文书
法律系毕业生求职信
2014/05/28 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
党支部鉴定意见
2015/06/02 职场文书
新闻通讯稿模板
2015/07/22 职场文书
学习心理学心得体会
2016/01/22 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL