javascript-JS 动态生成元素 怎么让他添加一个包容DIV或者说,我怎么让他四个换一行呢?

问题描述

JS 动态生成元素 怎么让他添加一个包容DIV或者说,我怎么让他四个换一行呢?


为什么我一开始是4个一行...后来是一个一行?
谷歌F12看了一下,代码都是一个格式生成的呀?我如何给他包一个div去控制格式,或者说写一个JS去让他四个换行?有大神能解释一下为什么这个布局会这样子?
JS代码:

function addlink(){
var x = 1;
var linkdiv = document.getElementById("friendlink");
if (linkdiv.attributes.currentindex.value) {
var tmp = linkdiv.attributes.currentindex.value;
x = parseInt(tmp) + 1;
}
linkdiv.setAttribute('currentindex', x);

var yadd = 'link[js'+x+'][add]';
var yname = 'link[js'+x+'][name]';
var yimg='link[js'+x+'][plus]';

//$("#friendlink").append("<div class='new-stu-append'>");

var checkbox1 = document.createElement('input');
checkbox1.setAttribute('type', 'checkbox');
checkbox1.setAttribute('style','float:left;');
checkbox1.setAttribute('name', yadd);

console.log(yadd);

var input1 = document.createElement('input');
input1.setAttribute('type', 'text');
input1.setAttribute('placeholder', '请填写学员的名字'+x);
input1.setAttribute('style','float:left;');
input1.setAttribute('name', yname);

console.log(yname);

var input2 = document.createElement('div');
//input2.setAttribute('type', 'image');
//input2.setAttribute('id', 'my-stu-icon-image');
//input2.setAttribute('class', 'reduce-icon');
input2.setAttribute('style','background:url(images/plus.png) no-repeat;background-position:0 -15px; width:20px;height:20px;float:left;cursor:pointer;');
input2.setAttribute('onclick', "reduce_stu()");
//input2.setAttribute('src', 'images/plus.png');
//input2.setAttribute('name', yimg);

if(x/4)
var br = document.createElement('br');

linkdiv.insertBefore(checkbox1,null);
linkdiv.insertBefore(input1,null);
linkdiv.insertBefore(input2,null);
linkdiv.insertBefore(br,null);
//$("#friendlink").append("</div>");

}

解决方案

function addlink(){
var x = 1;
var linkdiv = document.getElementById("friendlink");
if (linkdiv.attributes.currentindex.value) {
var tmp = linkdiv.attributes.currentindex.value;
x = parseInt(tmp) + 1;
}
linkdiv.setAttribute('currentindex', x);

var yadd = 'link[js'+x+'][add]';
var yname = 'link[js'+x+'][name]';
var yimg='link[js'+x+'][plus]';

//$("#friendlink").append("<div class='new-stu-append'>");

var checkbox1 = document.createElement('input');
checkbox1.setAttribute('type', 'checkbox');
checkbox1.setAttribute('style','float:left;');
checkbox1.setAttribute('name', yadd);

console.log(yadd);

var input1 = document.createElement('input');
input1.setAttribute('type', 'text');
input1.setAttribute('placeholder', '请填写学员的名字'+x);
input1.setAttribute('style','float:left;');
input1.setAttribute('name', yname);

console.log(yname);

var input2 = document.createElement('div');
//input2.setAttribute('type', 'image');
//input2.setAttribute('id', 'my-stu-icon-image');
//input2.setAttribute('class', 'reduce-icon');
input2.setAttribute('style','background:url(images/plus.png) no-repeat;background-position:0 -15px; width:20px;height:20px;float:left;cursor:pointer;');
input2.setAttribute('onclick', "reduce_stu()");
//input2.setAttribute('src', 'images/plus.png');
//input2.setAttribute('name', yimg);

if(x/4)
var br = document.createElement('br');

linkdiv.insertBefore(checkbox1,null);
linkdiv.insertBefore(input1,null);
linkdiv.insertBefore(input2,null);
linkdiv.insertBefore(br,null);
//$("#friendlink").append("</div>");

}

解决方案二:

你添加的时候,一下就添加四个不就可以了?

解决方案三:

可是我要是要添加很多个呢...

解决方案四:

容器定宽,里面放入div 定宽float布局,所有子组件放入div里面,然后往容器添加div就行了,到底容器宽度会自动换行

解决方案五:

js动态添加div

时间: 2025-01-26 17:05:49

javascript-JS 动态生成元素 怎么让他添加一个包容DIV或者说,我怎么让他四个换一行呢?的相关文章

JS动态生成的元素,其对应的方法不响应(比如单击事件,鼠标移动事件等)

主要原因:在页面给元素注册点击事件的时候[ $(function () {  XXX }); ],JS动态生成的元素还尚未生成,所以click事件就没有生效   解决方法:   方案一:js动态生成元素后再给其注册事件 [注册事件放在动态生成的js下面(js是从上往下执行的,当注册事件的时候元素已经生成了,就不会出现注册失效的现象了)] 话比较抽象举个例子:   方案二:js动态生成元素的时候给他加上 onClick之类的方法  举个例子: 如果你又更好的方案,那小子受教了~~

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

本文为大家分享了js创建元素的两种方法供大家参考,具体内容如下 1)将需要创建的元素,以字符串的形式拼接:找到父级元素,直接对父级元素的innnerHTML进行赋值. 2)使用Document.Element对象自带的一些函数,来实现动态创建元素(创建元素 => 找到父级元素 => 在指定位置插入元素) 一.字符串拼接形式     为了更好的理解,设定一个应用场景.     随机生成一组数字,将这组数据渲染为条形图的形式,放在div[id="container"]中,如下图

js 动态给元素添加、移除事件的实现方法_javascript技巧

最近项目中要要到 js动态给给元素绑定事件,刚好之前没用到过这些,顺便学习一下,于是google了一下 事件,写了如下两个事件 一个添加事件 ,一个是移除事件 /addEventListener(),removeEventListener()用于处理指定和删除事件处理程序的操作 //作用域:事件处理程序会在其所属元素的作用域内运行 //addEventListener(event,function,capture/bubble);removeEventListener(event,functio

js 动态生成json对象、时时更新json对象的方法_javascript技巧

函数不需要 return,因为 json 对象会被函数直接修改. var str1 = {"name": "apple", "sex": "21"}; // 参数:prop = 属性,val = 值 function createJson(prop, val) { // 如果 val 被忽略 if(typeof val === "undefined") { // 删除属性 delete str1[prop]

js动态生成指定行数的表格

下面用js实现可以生成用户所需行数的表格. 1.首先在body中填入下列代码,获取用户填入的行数值 1 <table> 2 <tr> 3 <td>动态生成表格</td> 4 <td><input id="Cold" type="text" class="input" size="10" name="Num"/>行</td>

前端 图片-关于JS动态生成简单图片

问题描述 关于JS动态生成简单图片 http://v3.bootcss.com/examples/dashboard/ 今天学习bootstrap,参照上面的例子做几个固定底色的圆. 先下载bootstrap,查看dashboard实例的index.html 可以看到这几个圆来源docs.min.js,而且类型是图片 然后自己写一个html,引入bootstrap中的docs.min.js,页面写2个img 圆形:<img data-src="holder.js/200x200/auto/

java 获取网页源码(包括js动态生成的)

问题描述 不知道那位大侠做过类似的东西,我现在就想做一个能够对网页源码解析的一个小工具,可是我试了很多种方式都不行;都说HtmlUnit这个可以加载Js生成的数据,可是我用了还是不行,HttpClient这个只能得到静态生成的网页源码.各位高手给个案例,谢谢! 解决方案 解决方案二:js动态生成的代码需要分析理解函数调用产生的结果代码(一部分是猜).解决方案三:jsoup可能会实现吧解决方案四:jsoup也不行,就是不知道如何模拟网页执行后的过程解决方案五:如果确实需要那就自己模拟个浏览器吧.解

html5-jquery 动态生成几个页面,其中一个页面不能显示

问题描述 jquery 动态生成几个页面,其中一个页面不能显示 只能显示全部和酒店的页面,航空的那个不能加载到动态生成的数据 <!--首页,默认为全部--> <div data-role="page" id="index" > <div style="overflow: hidden;" data-role="header" data-position="fixed">

js动态生成Html元素实现Post操作(createElement)_javascript技巧

有时,你需要Post数据到另一个页面上,那么你就需要构建一个Form表单 <form id="postform" name="postform" method="post"> <input name="msg" value=""/> </form> 复制代码 代码如下: document.write("<form ..." //document.