我试图输出与test
变量关联的数组:
$(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
,但它只显示数组的最后一个索引。请帮助我。
答案 0 :(得分: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(", "));
});
答案 1 :(得分:0)
在click函数的全局变量中声明sample
数组,而不是each
函数。因为每个时间循环都会重置数组。这就是为什么它只有最后一个元素值
$(document).on('click','#btnSubmit', function(){
var sample = [];
var test = $("input[name*='i_name']");
$(test).each(function(i, item){
sample.push($(item).val());
});
});
答案 2 :(得分:0)
$(document).on('click','#btnSubmit', function(){
var sample = [];
var test = $("input[name*='i_name']");
test.each(function(i, item){
sample.push($(item).val());
});
});
我想......我应该改变$(test)=&gt;测试
答案 3 :(得分:0)
只需更新值即可将数组输出到input
框。
在您的代码中,您的sample
变量每次都更新为空数组[]
,因此它只存储最新值。
const text = ['1','2','3','4','5'];
$("#test").val(text.join(''));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="test" />
&#13;