在我的网页上,我有3个选择按钮,名称为“Seizoen”。我想知道选择了哪些,并将值作为数组返回到我的网页中。
此刻我有这段代码:
var seizoen_array = $.each($(form).children("input.selected[name=seizoen]"), function(index, evt) {
if(typeof(seizoen)=="undefined") { var seizoen = []; }
seizoen[index] = $(evt).val();
});
alert(seizoen);
alert(seizoen_array);
但是这不起作用,因为循环后循环中的变量无法显示。 我搜索了很多,但找不到解决方案。有人可以帮帮我吗? ; - )
**抱歉我的英语不好,我希望能够理解......
答案 0 :(得分:3)
我建议使用jQuery:
var counter = 0;
$('.cube').each(function(i) {
if (i % 10 == 0) {
counter = 1;
} else {
counter++;
}
if (counter < 5) {
$(this).addClass('something');
}
});
或者,使用纯JavaScript:
// this selects the <input> elements, with the class-name of
// 'selected' and the name of 'seizon', from within the <form>
// and then uses the map() method to form a map:
var seizoen_array = $('form input.selected[name=seizon]').map(function () {
// returning the value of the current element of the collection
// over which we're iterating to the map:
return this.value;
// using get() to convert the map to an array:
}).get();
参考文献:
答案 1 :(得分:0)
您应该查看变量作用域在JavaScript中的工作原理。如果您希望变量可以在函数外部访问,那么您需要在函数外部定义它。例如:
var seizoen = [];
var seizoen_array = $.each($(form).children("input.selected[name=seizoen]"), function(index, evt) {
seizoen[index] = $(evt).val();
});
alert(seizoen);
alert(seizoen_array);
这样做是为了演示变量作用域的工作原理,但你应该使用David的答案,因为它是更好的形式。
答案 2 :(得分:0)
您将所选元素放在each()
方法之前。另外,我不确定嵌套数组是否是您真正想要的,但我认为这是您想要的输出(可能)。
var seizoen_array = [];
$(form).children("input.selected[name=seizoen]").each( function(index, evt) {
if(typeof seizoen =="undefined"){
var seizoen = [];
}
seizoen[index] = $(this).val();
seizoen_array.push(seizoen);
});
alert(seizoen);
alert(seizoen_array);