变量更改时,显示的Jquery变量不会更改

时间:2012-06-25 20:25:37

标签: jquery variables checkbox

我用它来检查已检查框的nubmer

    var CheckedChecks = $("input:checkbox:checked").length;

然后我将结果放在一长串HTML中。我设置了警报,所以我知道变量正在改变。 (我在html中遇到麻烦,但这并不重要......

    $(".pt-sel:first").append("HTML CRAP"+ CheckedChecks +"MORE HTML CRAP")

所有html显示正常,并且复选框的数量的初始值为0是正确的,但它不会随着变量更新而更新。 var的var和display都出现在同一个{}集中,所以这不是问题。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

好吧,CheckedChecks只计算一次长度,然后变为静态,直到再次引用length属性。

所以,如果我理解问题是正确的,我想你应该试试这个。如果我不理解这个问题,请原谅我。

var CheckedChecks = function(){
 return $('input:checkbox:checked').length;
};

$('.pt-sel:first').append('HTML CRAP'+CheckedChecks()+'MORE HTML CRAP');

或者只是

$('.pet-sel:first').append('HTML CRAP'+$('input:checkbox:checked').length+'MORE HTML CRAP');

答案 1 :(得分:0)

变量不会自动更新。

您必须挂钩所有复选框的onchanged事件才能更新文本。

$("input[type=checkbox]").change(function() {
   var CheckedChecks = $("input:checkbox:checked").length;
   //cant use append, so put a div at bottom, and fill this.
   $(".pt-sel:first #myDiv").html("HTML CRAP"+ CheckedChecks +"MORE HTML CRAP")
});

(这假设您要应用于所有复选框。如果您需要更具体,请给复选框一个类)