2017-08-10 81 views
0

即時試圖輸出與test變量相關聯的數組:jquery的陣列,以字符串來顯示文本框輸入

  $(document).on('click','#btnSubmit', function(){ 
       var test = $("input[name*='i_name']");     
       $(test).each(function(i, item){ 
        var sample = []; 
        sample.push($(item).val()); 

       });     
      }); 

和顯示所有我進入一個文本框數據:

<input type="text" id="test" name="test[]"> 

如何將我做到了嗎?我試過JSON.stringify,.join但它只顯示數組的最後一個索引。請協助我。

回答

4

您正在重置您的示例數組在每次迭代中,從循環中刪除變量聲明。

$(document).on('click','#btnSubmit', function() { 
    var test = $("input[name*='i_name']"); 
    var sample = []; // <-- Define sample variable here 
    $(test).each(function(i, item){ 
     sample.push($(item).val()); 
    }); 

    console.log(sample.join(", ")); 
}); 
+0

工作,非常感謝! – mao

+0

很高興我能幫到你。 :)如果這解決了您的問題,請考慮將其標記爲解決方案,以便其他用戶也可以找到此問題。 – Jerodev

0

聲明中點擊功能的全局變量sample陣列,而不是與each功能。因爲每一次循環將被重置array.That爲什麼它只有最後一個元素值

$(document).on('click','#btnSubmit', function(){ 
      var sample = []; 
       var test = $("input[name*='i_name']");     
       $(test).each(function(i, item){ 
        sample.push($(item).val()); 

       });     
      }); 
0
$(document).on('click','#btnSubmit', function(){ 
       var sample = []; 
       var test = $("input[name*='i_name']");     
       test.each(function(i, item){ 

        sample.push($(item).val()); 

       });     
      }); 

我想..我應該改變$(測試)=>測試

+0

請在'var sample = []後加';' –

0

只需更新該值即可將數組輸出到input框。

在你的代碼,你sample變量得到更新每次空數組[],因此它僅存儲最新的值。

const text = ['1','2','3','4','5']; 
 

 
$("#test").val(text.join(''));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<input type="text" id="test" />

0

兩種主要的錯誤,則在每次時間清除陣列內循環,聲明無功樣本= [],全球 使用了錯誤的選擇借調,直接使用比jquery對象分配給一個變量並使用它。

$(document).on('click','#btnSubmit', function(){ 
         var sample = [];    
       $("input[name*='i_name']").each(function(i, item){ 
        sample.push($(item).val()); 
       }); 
       console.log(sample.toString()); // it will convert to string. 
      }); 

希望它有幫助。

相關問題