jQuery来检索输入数组的值

时间:2017-11-23 20:34:27

标签: javascript jquery

我需要获得input[name="color_cost[0]"]

的值

我有一个像这样的jQuery脚本,但colorCost对象是undefined

var colorCost = $('input[name="color_cost[0]"]').val();

var colorCost = $('input[name="color_cost[0]"]').val();
console.log(colorCost);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" name="color_cost[]" value="100">
<input type="text" name="color_cost[]" value="200">
<input type="text" name="color_cost[]" value="300">
<input type="text" name="color_cost[]" value="300">

3 个答案:

答案 0 :(得分:1)

0更改选择器。使用.eq(index)获取您想要的那个。

var colorCost = $('input[name="color_cost[]"]').eq(0).val();
console.log(colorCost);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" name="color_cost[]" value="100">
<input type="text" name="color_cost[]" value="200">
<input type="text" name="color_cost[]" value="300">
<input type="text" name="color_cost[]" value="300">

答案 1 :(得分:0)

如果您将0放在方括号之间,它使用了错误的选择器,它应该是'input[name="color_cost[]"]',它会为您提供一系列元素。

var colorCost = $($('input[name="color_cost[]"]')[0]).val();
console.log(colorCost);

然后使用$('input[name="color_cost[]"]')[0],您可以获取第一个,并将其包装在$()内,以便将其作为jQuery对象读取,并且可以使用.val()

如果您想获得array中的所有输入值,可以使用:

var inputs = Array.from($('input[name="color_cost[]"]')).map(function(input){
    return $(input).val();
});

<强>演示:

var colorCost = $($('input[name="color_cost[]"]')[0]).val();
console.log(colorCost);

var inputs = Array.from($('input[name="color_cost[]"]')).map(function(input) {
  return $(input).val();
});
console.log(inputs);
console.log(inputs[0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" name="color_cost[]" value="100">
<input type="text" name="color_cost[]" value="200">
<input type="text" name="color_cost[]" value="300">
<input type="text" name="color_cost[]" value="300">

答案 2 :(得分:0)

您可以使用.serializeArray()

您不需要在选择器中指定input(如果唯一)

&#13;
&#13;
var colorCost = $('[name="color_cost[]"]').eq(0).val();
var colorCostArray = $('[name="color_cost[]"]').serializeArray()

console.log(colorCost)
console.log(colorCostArray[0].value)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" name="color_cost[]" value="100" size="3">
<input type="text" name="color_cost[]" value="200" size="3">
<input type="text" name="color_cost[]" value="300" size="3">
<input type="text" name="color_cost[]" value="300" size="3">
&#13;
&#13;
&#13;