我发现它非常必须在选择字段中的Jquery中加起来,到目前为止,我的代码看起来像这样。
$(function() {
$("select").change(function() { updateTotal(); });
updateTotal();
});
function updateTotal() {
var newTotal = 0;
$("select option:selected").each(function() {
var optionz = $(this).text();
var newString = optionz.match(/{([^}]*)}/);
console.log(newString)
newTotal += newString;
});
$("#total").text("Total: " + newTotal);
}
这样的结果很奇怪并且输出。
总计:0 {3.25},3.25 {0},0 {9.95},9.95 {0},0 {16.95},16.95 {0},0 {10.25},10.25 {0},0 {0},0 {0 },0 {0},0 {0},0 {0},0
我的日志在firefox中看起来像这样,我猜我只需要输出数字。
[
"{3.25}"
,
"3.25"
]
# (line 73)
[
"{0}"
,
"0"
]
最佳答案
如果您没有如MDN documentation所述为g
提供match()
标志:
如果正则表达式不包含g标志,则返回
与regexp.exec(string)相同的结果。
因此,它与使用regexp.exec(string)
相同(请参见MDN documentation)。
然后文档说:
如果匹配成功,则exec方法返回一个数组并更新
正则表达式对象的属性。返回的数组有
匹配的文本作为第一项,然后每一项
捕获与包含以下内容的文本匹配的括号:
被抓
所以,只要改变
newTotal += newString;
至
newTotal += parseFloat(newString[1]); //The string returned by your match()
关于javascript - jQuery在括号之间添加选择号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15498541/