如何选择名称数组中的所有元素
How to select all elements in name array?
我正在尝试使用jQuery对一个单选集合求和。
<input name="cost[alpha]" type="radio" >
<input name="cost[beta]" type="radio">
<input name="cost[delta]" type="radio">
...
$('input[name="cost[*]"]').each( function() {
...
}
这不起作用,因为它试图解析名称为"cost[*]"的输入。理想情况下,我想迭代成本数组中的任何元素。用jQuery做这件事有什么更好的方法吗?我的表单中还有其他使用radio类型的元素,因此选择radio通常不是一个有效的选项。
使属性选择器为"以"开头的"选择器(^=
):
$('input[name^="cost"]').each(function() {
...
});
如果您发现有其他以"cost"甚至"cost["开头的输入元素,那么您可能需要考虑更改查询元素的方式。一种替代方法是为目标元素添加一个特殊的类名,并完全忘记它们的名称。例如:
<input name="cost[alpha]" type="radio" class="form-cost">
<input name="cost[beta]" type="radio" class="form-cost">
<input name="cost[delta]" type="radio" class="form-cost">
然后你的选择器非常简单,非常有针对性:
$('input.form-cost').each(function() {
...
});
您可以简单地将元素包装在具有唯一id或类名的容器中,并查询它包含的输入元素(正如Allende在评论中建议的那样):
<div id="cost-inputs">
<input name="cost[alpha]" type="radio">
<input name="cost[beta]" type="radio">
<input name="cost[delta]" type="radio">
</div>
$('#cost-inputs input').each(function() {
...
});
Try with contains selector in jquery
$("input[name*='cost[']").each(function(){});
尝试:
var sum = 0;
$("input[name^='cost']").each(function() {
sum += Number($(this).val());
});
关于" started With Selector": [name^="value"]
https://api.jquery.com/attribute-starts-with-selector/
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 如何在加号运算符之后选择数组元素的一部分
- 访问标记图标的图像数组元素
- JavaScript 合并相同的数组元素
- 删除仅空格数组元素
- JavaScript闭包和返回数组元素