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 相关文章推荐
Jquery+ajax请求data显示在GridView上(asp.net)
Aug 27 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 Javascript
js给页面加style无效果的解决方法
Jan 20 Javascript
JavaScript判断文件上传类型的方法
Sep 02 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
深入理解JavaScript内置函数
Jun 03 Javascript
Javascript中常见的逻辑题和解决方法
Sep 17 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
在Vue-cli里应用Vuex的state和mutations方法
Sep 16 Javascript
浅谈React中组件逻辑复用的那些事儿
May 21 Javascript
vue.js+element 默认提示中英文操作
Nov 11 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
一个简单实现多条件查询的例子
2006/10/09 PHP
第十节--抽象方法和抽象类
2006/11/16 PHP
相对路径转化成绝对路径
2007/04/10 PHP
Snoopy类使用小例子
2008/04/15 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
javascript AutoScroller 函数类
2009/05/29 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
js动态切换图片的方法
2015/01/20 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
Python实现的计算器功能示例
2018/04/26 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
LINUX下线程,GDI类的解释
2016/12/14 面试题
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
生物化工工艺专业应届生求职信
2013/10/08 职场文书
心得体会开头
2014/01/01 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
新员工入职感想
2015/08/07 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
Win11更新失败并提示0xc1900101
2022/04/19 数码科技