如何解决jQuery计算具有重复选择的选定选项ID的值
| 我什至不知道如何命名此权利。 我有一个页面,需要添加多个选择的总数,并在选择发生更改时显示总数。所有选择的名称都相同,并且选项的值在选项的ID中。到目前为止,我尝试过的一切都非常失败。谢谢。 例: <select name=\"options\">
<option ID=\"2.2\" value=\"uid\" selected>Option 1</option>
<option ID=\"1.8\" value=\"uid\">Option 2</option>
<option ID=\"3\" value=\"uid\">Option 3</option>
</select>
<select name=\"options\">
<option ID=\"2.2\" value=\"uid\">Option 1</option>
<option ID=\"1.8\" value=\"uid\" selected>Option 2</option>
<option ID=\"3\" value=\"uid\">Option 3</option>
</select>
<div id=\"total\">Total: 4</div>
解决方法
这是jsFiddle中的函数版本:
http://jsfiddle.net/shaneblake/BBhnZ/
HTML:
<select name=\"options\">
<option data-value=\"2.2\" value=\"uid\" selected>Option 1</option>
<option data-value=\"1.8\" value=\"uid\">Option 2</option>
<option data-value=\"3\" value=\"uid\">Option 3</option>
</select>
<select name=\"options\">
<option data-value=\"2.2\" value=\"uid\">Option 1</option>
<option data-value=\"1.8\" value=\"uid\" selected>Option 2</option>
<option data-value=\"3\" value=\"uid\">Option 3</option>
</select>
<div id=\"total\">Total: 4</div>
JavaScript:
$(function() {
$(\"select[name=\'options\']\").change(function() { updateTotal(); });
updateTotal();
});
function updateTotal() {
var newTotal = 0;
$(\"select[name=\'options\'] option:selected\").each(function() {
newTotal += parseFloat($(this).data(\'value\'));
});
$(\"#total\").text(\"Total: \" + newTotal);
}
, 你可以做
var selects = $(\"select[name=options]\");
selects.bind(\"change\",recalculateSelectTotals);
function recalculateSelectTotals() {
var total = 0;
selects.find(\"option:selected\").each(function () {
total += Number(this.id);
});
$(\"#total\").text(\"Total: \" + total);
}
但是,应将“ 4”用作值,并保存ID作为标识符。具有相同名称的两个选择也是无效标记。
, 1:ID不能以数字开头。
2:您不能有多个具有相同ID的项目
3:提供选择的类或ID,以便您读取其值$(\'#selectID\').val()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。