具有多个名称[]的字段上的多个选择器

时间:2020-09-01 09:47:33

标签: jquery jquery-selectors

[请忽略/ close-我在代码中犯了一个错误,但感谢您的贡献]

在我的代码中,我有多个共享相同父名称的字段。例如:

<input name="example[1_1]" type="checkbox">
<input name="example[1_2]" type="checkbox">
<input name="example[1_3]" type="checkbox">

我不知道其中哪个是检查值。显然我可以使用一个类,但是我想做的是做一个选择器,该选择器说获取以1_开头的所有字段。

我尝试了以下操作:

var answer = $('input[name^="example['+q+']"]:checked').val();
var answer = $('input[name^="example['+q+'"]:checked').val();

使用Jquery确实可行吗?如果不是,我将不得不重新处理我的情况,但如果有办法,我宁愿使用它。

2 个答案:

答案 0 :(得分:1)

根据jQuery attribute selector documentation^选择器将

[att^=val] 表示具有att属性的元素,其值以前缀"val"开头。如果"val"是空字符串,则选择器不代表任何内容。

因此,您的选择器不必在其中包含整个括号。然后,最终选择器应如下所示(与您提供的第二个选项相同):

input[name^="example[' + q + '"]:checked

所以您的最终代码应该是这样的:

var q = '1_'
var answer = $('input[name^="example[' + q + '"]:checked').val();
console.log(answer)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="example[1_1]" type="checkbox" value="1" />
<input name="example[1_2]" type="checkbox" value="2" checked/>
<input name="example[1_3]" type="checkbox" value="3" />

但是您的问题在这里可能无法解决,因为每当您使用checked.val()的组合时,它只会返回第一个匹配的元素。因此,您需要获取整个匹配元素,然后分别获取它们的值。

您可以这样获得最终值:

var q = '1_'
var answer = $('input[name^="example[' + q + '"]:checked');
var length = answer.length;

for(var i = 0; i < length; i++) {
  console.log(answer[i].value)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="example[1_1]" type="checkbox" value="1" />
<input name="example[1_2]" type="checkbox" value="2" checked />
<input name="example[1_3]" type="checkbox" value="3" checked />

答案 1 :(得分:1)

如果要选中所有选中的复选框,并且名称以example[1_开头,则可以使用

var answer = $('input[name^="example[1_"]:checked')

演示

var answer = $('input[name^="example[1_"]:checked');

console.log(answer.length)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="example[1_1]" type="checkbox">
<input name="example[1_2]" type="checkbox" checked>
<input name="example[1_3]" type="checkbox">

相关问题