将HTML元素转换为javascript数组

时间:2015-12-29 16:40:28

标签: javascript jquery loops foreach

在我的网页上,我有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);

但是这不起作用,因为循环后循环中的变量无法显示。 我搜索了很多,但找不到解决方案。有人可以帮帮我吗? ; - )

**抱歉我的英语不好,我希望能够理解......

3 个答案:

答案 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);