我正在尝试返回一个选择类值的数组,但我只得到最后一个值。
所以这个:
<input class="test" value="Example 1" />
<input class="test" value="Example 2" />
console.log($(".test").val());
给我这个
Example 1
如何获得班级的所有价值?我想将它保存在变量中,以便我可以使用AJAX发送它。
答案 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作为输入值数组,请在此处查看: