Jquery 读取编号组中选择下拉列表的数组
Jquery Read Array of Select Dropdowns in Numbered Group
我有一组选择下拉列表,如下所示:
<select name="item[1]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[2]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[3]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[4]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
我正在尝试使用Jquery解析它们。 名称中的数字由数据库中项目的 ID 号填充。 我基本上想解析每一个,如果是肯定的,那么使用 ID 从数据库中获取项目的价格来计算总数。 这在Jquery上可能吗? 我可以毫无问题地完成其余代码,我只需要帮助解析所有item
并返回每个代码的值和 ID。
我会使用 jQuery 属性以选择器开头,并与 .map()
结合使用以获取所选项目的列表。
下面是一个可运行的代码段,它在单击按钮后返回所选项的数组。由您来获取商品 ID 并生成您的价格。
$("button").on("click", function() {
var ids = $('select[name^="item"]').map(function() {
if ($(this).val() === "Yes")
return this.name.replace(/'D/g,'');
else
return null;
}).toArray();
alert(ids);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select name="item[1]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[2]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[3]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[4]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<button>Get Price</button>
这是一个完整的示例(getIds
方法是您想要的部分(
function getIds(){
var selected = $('select[name^="item["]').filter(function(){
return this.value == 'Yes';
}).map(function(){
return this.name.match(/'d+/);
});
return selected.get();
}
// just for display purposes
// you should call the getIds() method when you need to..
$('select').change(function(){
var ids = getIds();
$('.results').text( ids );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select name="item[1]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[2]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[3]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<select name="item[4]">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<div class="results"></div>
我还没有测试过,但你可以尝试这样的事情:
$("select[name^='item']").each(function(){
console.log($(this).attr("name") + ": " + $(this).find(":selected").attr("value"));
});
稍作调整,您可以将其转换为键值对,然后,如果我正确理解了这个问题,可能会使用eval()
来获得所需的值。
相关文章:
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 从多维嵌套json数组创建下拉列表
- Jquery 读取编号组中选择下拉列表的数组
- Knockout JS中具有下拉列表的数组
- 由vbscript下拉列表填充的经典asp-javascript数组
- 如何从下拉列表中由可观察数组填充的选定项中检索完整对象
- 从下拉列表中的数组中选取某个项目,然后将其显示为第一项并按字母顺序显示
- 使用 jQuery 更改基于下拉 html 数组的文本框
- jQuery 根据数组值隐藏下拉列表的选项
- 用下拉列表填充数字数组
- 从 xml 文件创建一个下拉列表,不带重复值.我需要数组吗?
- 从数组 Jquery 中获取下拉列表的选定索引
- 在 JQuery 验证中验证多个“数组命名”文件输入和下拉列表
- 从 Javascript 和 Java 返回的数组中填充下拉列表
- select2获取下拉选项数组列表
- 验证下拉框数组
- 如何获得下拉值(数组计数的范围)
- html中的下拉列表数组
- 是否基于一个Object创建一系列下拉菜单,其中键为:[下拉选项数组]对
- 表单提交验证动态下拉列表数