检查多个价格,增加总价标签

时间:2013-09-04 03:12:23

标签: javascript jquery asp.net checkbox

每当用户点击一个复选框时,我试图在我的网站上加总总价 - 使用一些jQuery,但只有在我添加结果时才收到$ NaN。我的脚本末尾附近的警告框也显示非常奇怪的结果(领先0,我不知道为什么)

这是我目前的代码:

$("#AdditionalOffers").bind("click", "input:checkbox", function () {
                    var $items = $("#AdditionalOffers").find("input:checkbox:checked");
                    var $total = $("#totalPrice");
                    var cur_total = 0;

                    $items.each(function () {
                        var $this = $(this);
                        var target = $("span[class='" + $this.attr("id") + "']");
                        var item_value = +target.text()

                        cur_total += item_value;
                        alert(cur_total);
                    });

                    $total.html("$" + cur_total);
                });

因为我使用的是.NET,所以我的标记看起来像这样:

<asp:CheckBox ID="CheckBox7" CssClass="label-for-check" Text="Lease/Sales Consultation" runat="server" /> <span class="CheckBox7">75</span> <br />
<asp:CheckBox ID="CheckBox1" CssClass="label-for-check" Text="Lease Review Advisor" runat="server" /> <span class="CheckBox1">50</span> <br />
<asp:CheckBox ID="CheckBox2" CssClass="label-for-check" Text="Starter Package" runat="server" /> <span class="CheckBox2">25</span> <br />

我觉得有一个愚蠢的原因,这是行不通的。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

原因是您正在使用ASP.NET,因此ID是动态生成的,$this.attr("id")返回的值不同于

中的span类
var target = $("span[class='" + $this.attr("id") + "']");

例如,当您查找类CheckBox7的范围时,$this.attr("id")会返回类似{prefix}CheckBox7的内容。

解决方案1:只需将该行替换为:

var target = $this.next();

解决方案2:

如果您需要按类查找,请使用id以外的其他属性。在代码隐藏中就像这样:

CheckBox7.Attributes["myspanclass"] = "CheckBox7";
CheckBox1.Attributes["myspanclass"] = "CheckBox1";
CheckBox2.Attributes["myspanclass"] = "CheckBox2";

用以下内容替换该行:

 var target = $("span[class='" + $this.attr("myspanclass") + "']");