我发现它非常必须在选择字段中的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/

10-12 15:13