javascript动态添加form表单元素

2014年11月7日 17:10:40

之前写过几篇类似的文章,现在看来比较初级,弄一个高级的简单的

情景: 后台要上传游戏截图,截图数量不确定,因此使用动态添加input节点的方法去实现这个效果

主要用到的函数有: 

document.getElementById();

objNode.parentNode;

objNode.cloneNode();

objNode.removeAtrribute();

objNode.innerHTML();

objNode.appendChild();

html:

复制代码

1 <div class="well well-sm">
 2     <div class="form-group">
 3         <label  class="form-label">游戏截图:</label>
 4         <input type="file"  name="jietu[]" class="form-input">
 5         <span class="form-tip" οnclick="add_jietu()"><font color="#428bca">点击添加游戏截图</font></span>
 6     </div>
 7     <div class="form-group" id="add_jietu">
 8         <label  class="form-label">游戏截图:</label>
 9         <input type="file"  name="jietu[]" class="form-input">
10     </div>
11 </div>

复制代码

javascript:

复制代码

1 <script type="text/javascript">
 2 function add_jietu()
 3 {
 4     var add_jietu = document.getElementById('add_jietu');
 5     var nodeFather = add_jietu.parentNode;
 6     var node_clone = add_jietu.cloneNode();
 7     content = add_jietu.innerHTML;
 8     node_clone.removeAttribute('id');
 9     node_clone.innerHTML = content;
10     nodeFather.appendChild(node_clone);
11 }
12 </script>

复制代码

注意:

1. js第6行使用的是"克隆节点"函数,克隆后的节点里边并没有html,需要第9行的代码去填充内容

2. 使用克隆功能,因为该方法生成的变量类型是"节点类型", 才可以用到appendChild()函数里做参数

3. 节点的 nextSibling 和 lastChild 属性得到的变量是 Text类型(在chrome的调试窗口中看到的)

转载于:https://my.oschina.net/u/1266171/blog/814620

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值