Javascript 如何使用each()在数组中推送值
我想要一个简单的逻辑- 每个循环运行输入单选并获取两个值,即单选btton的值和单选按钮的名称 现在,警报窗口仅显示最后一个元素的结果 我希望所有数组结果都存储在mf中 名称正在动态提交Javascript 如何使用each()在数组中推送值,javascript,jquery,Javascript,Jquery,我想要一个简单的逻辑- 每个循环运行输入单选并获取两个值,即单选btton的值和单选按钮的名称 现在,警报窗口仅显示最后一个元素的结果 我希望所有数组结果都存储在mf中 名称正在动态提交 $(“输入[类型=无线电]:选中”)。每个(函数(){ var1=$(this.val(); var2=$(this.attr(“name”); mf=[var2+“”+var1]; }); 警报(mf) A. B B C var mf=[]; $(“输入[type=radio]:选中”)。每个(函数(){
$(“输入[类型=无线电]:选中”)。每个(函数(){
var1=$(this.val();
var2=$(this.attr(“name”);
mf=[var2+“”+var1];
});
警报(mf)代码>
A.
B
B
C
var mf=[];
$(“输入[type=radio]:选中”)。每个(函数(){
var1=$(this.val();
var2=$(this.attr(“name”);
mf.push(变量1)
mf.push(变量2)
});
控制台日志(mf)代码>
A.
B
B
C
问题在于,您在每次迭代中都要重新定义mf
的值,因此它只在循环结束时保存最终值
要解决此问题,请使用push()
向数组中添加元素:
var mf=[];
$(“输入[type=radio]:选中”)。每个(函数(){
var1=$(this.val();
var2=$(this.attr(“name”);
mf.push(var2+“”+var1);
});
控制台日志(mf)代码>
A.
B
B
C
重新定义mf,而不是添加内容。您应该执行以下操作:
var mf = [];
$( "input[type=radio]:checked" ).each(function(){
var1 = $(this).val();
var2 = $(this).attr("name");
mf.push(var2+"_"+var1);
});
alert(mf) ;
首先,将变量mf声明为数组,然后在每个循环中使用.push()
函数将数据推送到其中。有一个名为.push()
()的Javascript函数
因此,您要做的是在之外定义mf
数组。each()
然后对于循环的每次迭代,将结果推送到mf
数组中
var mf = [];
$( "input[type=radio]:checked" ).each(function(){
var1 = $(this).val();
var2 = $(this).attr("name");
mf.push(var2+"_"+var1);
});
// mf = ["name1_val1", "name2_val2"]
我想这对你有用
var mf=[];
$(文档)。在('单击','输入[type=radio]',函数()上{
如果($(this).is(“:checked”)){
mf.push($(this.val()+“”+$(this.attr(“name”));
}
})
A.
B
B
C
这似乎与所问问题无关(例如,表tr
和电子邮件从何而来?)。至少,它需要一些文本来解释它是如何解决问题的。一个好的答案将表明所提供的任何代码如何适合这种情况——不要只是复制并粘贴一些解决了模糊相关问题的代码。
var studentList =[];
var emailAddresses=[];
$('table tr').each(function (i, row) {
var tr =$(row);
var chk= tr.find('input[type="checkbox"]').is(':checked')
console.log(chk)
if(chk){
emailAddresses.push(tr.find('.email').text())
studentList.push(tr.find('input[type="checkbox"]').prop('id'))
console.log(emailAddresses);
console.log(studentList);
}
});