【问题标题】:I want to subtract text value have class in jquery我想减去文本值在 jquery 中有类
【发布时间】:2011-03-07 17:40:14
【问题描述】:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Sum of all TextBox values using jQuery</title>
    <script type="text/javascript"
    src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js">
    </script>
    <script type="text/javascript">
        $(function() {
            $("#addAll").click(function() {
                var add = 0;
                $(".amt").each(function() {
                    add -= Number($(this).val());
                });
                $("#para").text("Sum of all textboxes is : " + add);
            });
        });
    </script>
</head>
<body>
    <input id="Text1" class="amt" type="text" /><br />
    <input id="Text2" class="amt" type="text" /><br />
    <input id="Text3" class="amt" type="text" /><br />  
    <input id="addAll" type="button" value="Sum all Textboxes" /><br />
    <p id="para" />
</body>
</html>

但我无法得到实际结果。请帮帮我

【问题讨论】:

  • 因为你已经调用了变量'add'并且你正在做减法!
  • jsfiddle.net/ApjgJ 是您的代码的小提琴(放入了一些默认值)。它似乎有效(假设它是从零中减去所有数字)。您能否准确说明您得到什么结果以及您期望什么结果?
  • 可能只是我,但是“总和...”,addAll,add - 然后你减去看起来很混乱。

标签: javascript jquery class subtraction


【解决方案1】:

试试:

$(function() {
    $("#addAll").click(function() {
        var add = 0;
        $(".amt").each(function() {
            add += parseInt($(this).val() || 0, 10);
        });
        $("#para").text("Sum of all textboxes is : " + add);
    });
});

使用parseInt。此外,如果您要对这些值求和,则应使用 +=

它正在运行:http://jsfiddle.net/S9H6A/


更新:如果您尝试减去文本框中的所有值,那么您的问题是您将总数初始化为 0。请尝试类似这样的操作(还添加了来自@Praveen 的答案使用|| 0 默认为空inputs 为0):

$(function() {
    $("#addAll").click(function() {
        var total;
        $(".amt").each(function() {
            if (typeof total === 'undefined') {
                total = parseInt($(this).val() || 0, 10);
            }
            else {
                total -= parseInt($(this).val() || 0, 10);
            }
        });
        $("#para").text("Sum of all textboxes is : " + total);
    });
});

更新示例:http://jsfiddle.net/S9H6A/4/

【讨论】:

  • 此代码不起作用。类的减法显示负值..任何其他想法都值得赞赏
  • @reju:刚刚更新了一个工作示例并改用+=(不确定您是否真的在尝试减法或加法)。
  • 是的,我正在尝试使用类减去一组元素。我做了加法但减法不起作用..对此有什么想法吗?
  • @reju:这可能是因为您将 add 初始化为 0。
  • 为什么用 parseInt 而不是 Number?
【解决方案2】:

add -= parseInt($(this).val()|| 0,10);替换这个add -= Number($(this).val());

【讨论】:

  • 这个也不起作用..请检查这个..jsfiddle.net/S9H6A
  • parseInt 比 Number 有什么优势?它似乎与 Number 一起工作得很好......事实上,可能更好,因为 Number 似乎将空文本框视为零......
  • @reju:如果您还添加了||0,它就可以了。
  • @reju 我刚试过jsfiddle.net/S9H6A,它运行良好,你能说出你在尝试什么值吗??
  • @Brad:哦,是的,它似乎确实可以处理空文本框。我发誓我现在测​​试它时没有,但我可能只是忘了告诉 jsfiddle 更新什么的。 ;-)
猜你喜欢
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
相关资源
最近更新 更多