假如页面打开时初始是2个checkbox标签  class=ck
$(document).ready(function(){
$("#ckall").click(
function()
{
                       alert($(".ck").length); //这里是2  
}
);
});
然后通过js动态添加了2个checkbox标签 class=ck$(document).ready(function(){
$("#ckall").click(
function()
{
                       alert($(".ck").length); //这里是4 
}
);
});
但是假如我要是这么写的话jQuery.editrow=function(options){
$(options.ckall).click(
function()
{
                       alert($(options.ck).length);
}
);
};$(document).ready(function(){
var options={'ckall':$("#ckall"),'ck':$(".ck")};
$.editrow(options);
});无论加了多少个checkbox   点击ckall时永远是2  为什么呢? 

解决方案 »

  1.   

    $(document).ready(function(){
    var options={'ckall':'#ckall','ck':'.ck'};
    $.editrow(options);
    });这样试试
      

  2.   


    jQuery.editrow=function(options){
    options.ckall.click(
            function()
            {
                           alert(options.ck.length);
            }
            );
    };$(document).ready(function(){
    var options={'ckall':$("#ckall"),'ck':$(".ck")};
    $.editrow(options);
    });
    你传入的是jquery的对象了,不用$()进行转换了