从类值中获取数组

时间:2014-02-21 13:48:00

标签: javascript jquery

我正在尝试返回一个选择类值的数组,但我只得到最后一个值。

所以这个:

<input class="test" value="Example 1" />
<input class="test" value="Example 2" />
console.log($(".test").val());

给我这个

Example 1

如何获得班级的所有价值?我想将它保存在变量中,以便我可以使用AJAX发送它。

7 个答案:

答案 0 :(得分:3)

您可以使用.map()方法执行此操作,例如:

var data = $(".test").map(function () {
    return this.value;
}).get();   // ["Example 1", "Example 2"]

答案 1 :(得分:1)

这是因为有许多元素满足选择器“.test”,所以$(“。test”)返回一个数组,其中所有实例都有“test”类,所以你应该循环遍历数组吧像这样回来;

$(".test").each(function(){
   console.log($(this).val());
});

答案 2 :(得分:1)

var values = [];
$(".test").each(function(){
   values.push($(this).val());
});
console.log(values);

答案 3 :(得分:0)

请注意$('.test')已经返回一个数组,其中包含DOM中具有类test的所有元素。

因此,如果您需要所有值,只需将存储值的返回数组迭代到新数组中。

答案 4 :(得分:0)

试试这个

var x = $(".test");

这将返回元素数组,然后您可以处理数组以获取所有值。

  var x = $(".test");
            for (var i = 0; i < x.length; i++) {
                alert(x[i].value);
            }

答案 5 :(得分:0)

函数$(".test")已经返回一个数组;具有类“test”的元素数组。因此,一种选择是将该数组映射到值数组。 E.g。

var valueArray = $.map($(".test"), function(input, indx) {
    return input.value;
});
for (var i = 0, v; v = valueArray[i]; ++i) {
    console.log(v);
}

您还可以使用each()进行迭代并创建自己的数组

答案 6 :(得分:0)

试试这段代码:

var myArray = $('.test').map(function(){
   return $(this).val();
}).get();

您将变量myArray作为输入值数组,请在此处查看:

http://jsfiddle.net/CG8kj/