2012-02-28 101 views
0
<h2><a href="#" id="addScnt">Add Another Input Box</a></h2> 

<div id="p_scents"> 
    <p> 
     <label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" /> <input type="checkbox" id="c_scnt" name="c_scnt" class="show"> <input type="text" id="more" name="more" class="hide"> </label> 
    </p> 
</div> 

<span id="getall">Get all</span> 

所有代碼:http://jsfiddle.net/tZPg4/1420/得到輸入數據到陣列

是獲取所有和所有輸入獲得的所有數據和未來與循環使用他們每得到的數據可能點擊:this.one(第一個輸入(文本)),this.two(第二個輸入(複選框)),this.three(第三個輸入 - 隱藏)?例如:

$("#getall").click(function(){ 

     //here get all data to array, but how? 

     array.each(function(i){ 
      var html = $("<tr><td>this.one</td><td>this.two</td><td>this.three</td></tr>").appendTo("#myTable"); 
     }); 

    }) 

LIVE:http://jsfiddle.net/tZPg4/1420/

+0

你需要從你複製元素刪除'id'屬性。隨着你現在的代碼,你到處都是重複的ID,這是不好的。 – 2012-02-28 14:04:34

回答

1

像這樣的事情應該工作?

$("#getall").click(function(){ 
     var myRow = document.createElement("tr"); 

     var array = new Array() 
     $.each($("#p_scents").find("p"), function(ind, elem) { 
      var inputCol = new Array(); 
      console.log("Adding row"); 
      $.each($(elem).find("input"), function(ind2, inputElem) { 
       if ($(inputElem).attr("type") != "checkbox") { 
       inputCol [inputCol .length] = $(inputElem).val();     
       } 
       else { 
        inputCol [inputCol .length] = $(inputElem).is(":checked"); 
       } 
      }); 
      array[array.length] = inputCol; 
     }); 
     console.log("Outputting results"); 
     for (var i in array) { 
      console.log("Row: "+i); 
      for (var j in array[i]) { 
       console.log("Input: "+j + " == " + array[i][j]);   
      }      
     } 

    }); 
+0

http://jsfiddle.net/tZPg4/1425/請添加新行並填寫。我有錯誤:elem.val不是函數 \t array [array.length] = elem.val(); – 2012-02-28 14:12:58

+0

編輯我的答案適當 - 使用您的輸入類,以確保我只得到輸入你實際上後 - 見http://jsfiddle.net/tZPg4/1434/完整工作jsFiddle – 2012-02-28 14:57:45

+0

謝謝,但在這個例子中,我不知道輸入值的相關位置。例如在第一行輸入可以只有兩個值,而第二行可以是三個值。我希望每行都有獨立的變量,例如對於每一行:this.one,this.two,this.three – 2012-02-28 15:27:47

0
var arr = new Array(); 

$('input').each(function(index) 
{ 
    arr[arr.length] = $(this).val(); 
}) 
+0

http://jsfiddle.net/tZPg4/1430/我有錯誤:arr.each不是函數 – 2012-02-28 14:15:21