2014年11月7日 17:10:40javascript
以前寫過幾篇相似的文章,如今看來比較初級,弄一個高級的簡單的html
情景: 後臺要上傳遊戲截圖,截圖數量不肯定,所以使用動態添加input節點的方法去實現這個效果java
主要用到的函數有: node
document.getElementById();chrome
objNode.parentNode;app
objNode.cloneNode();函數
objNode.removeAtrribute();spa
objNode.innerHTML();調試
objNode.appendChild();orm
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" onclick="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的調試窗口中看到的)