全选CheckBox删除操作,再次点击取消全选。得到每一个循环模块的ID值,用于后台SQL语句删除

来源:互联网 发布:轻捷it 编辑:程序博客网 时间:2024/06/06 00:49
<script type="text/javascript">
        $(document).ready(function () {


               $("#全选按钮的ID").click(function () {
                     $(":checkbox").attr("checked", "true");
               });
            $("#Button1").click(function () {
                debugger;
                i = $(".delete_div").length; //获得本页面循环体的长度,也就是itemtemplate的数量
                function getId() {
                    var str_id = null; //初始ID
                    function id() {
                        for (var a = 0; a < i; a++) {
                            debugger;
                            var id = $(".delete_div:eq(" + a + ") input[type='checkbox']:checked").parent().find("span").text(); //得到当前循环体ID
                            if (id != "") {
                                str_id = str_id + "," + id;    //ID累加以逗号隔开,方便后台取值
                            }


                        }
                        return str_id;               //返回ID字符串
                    }
                    return id;
                }
                var str = getId(); //这里是闭包
                var strId = str();
                if (strId != null) {
                    $("#TextBox1").val(strId); //得到ID字符串,赋值给页面的TexBox,此赋值给页面的TexBox用于后台赋值
                } else {
                    alert("请选择需要删除的内容!");
                
                }


            })


        });


  </script>

注意:最后得到的ID是这种null,id1,id2 分割的时候需要自己把第一个null值去掉



//再次点击取消全选

$("checkedID全选的ID").click(function(){

if($(this).attr("checked")){

//进行全选操作,比如3个子checkbox

      for(var i=1;i<=3;i++){

                  $("input[type='checked']").eq(i).prop("checked",true);

     }

}else{

        //取消全选操作,

  for(var a=1;a<=3;a++){

                  $("input[type='checked']").eq(a).prop("checked",false);

     }

}



});




PS:prop()和attr()区别:

(来源:http://hxq0506.iteye.com/blog/1046334)

最近在iteye的新闻中看到jQuery已经更新到了1.6.1。和之前版本的最大变化是增加了.prop方法。但是.prop()方法和.attr()方法,单从字面上很难区分。在汉语中properties和attributes都有表示“属性”的意思。
下面根据这篇博文(javascript:mctmp(0);),简要翻译了.prop()和.attr()的用法:

1、从1.5.2升级到1.6.1

通过介绍新方法.prop()以及.attr()方法的改变,jQuery1.6.1引起了一场关于attributes和properties之间有何区别和联系的激烈讨论。同时,1.6.1也解决了一些向后兼容性问题。当从1.5.2升级到1.6.1时,你不必修改任何attribute代码。

下面是关于jQuery1.6和1.6.1中Attributes模块变化的描述,以及.attr()方法和.prop()方法的首选使用。然而,正如前面所述,jQuery1.6.1允许你使用.attr()方法就像以前它被使用在所有的情况中一样。

 

2、发生了什么变化

Attributes模块的变化是移除了attributes和properties之间模棱两可的东西,但是在jQuery社区中引起了一些混乱,因为在1.6之前的所有版本中都使用一个方法(.attr())来处理attributes和properties。但是老的.attr()方法有一些bug,很难维护。jQuery1.6.1对Attributes模块进行了更新,并且修复了几个bug。

特别提到的是,boolean attributes,比如:checked,selected,readonly和disabled在1.6.1中和1.6之前的处理相同。这意味着下面的代码:

 

  1. $(“:checkbox”).attr(“checked”, true);  
  2. $(“option”).attr(“selected”, true);  
  3. $(“input”).attr(“readonly”, true);  
  4. $(“input”).attr(“disabled”, true);  

 

 甚至是这样的代码:

 

  1. if ( $(“:checkbox”).attr(“checked”) ) { /* Do something */ }  

 

在1.6.1中没有必要为了保持之前期望的运行结果而发生任何改变。

 

 

为了让jQuery1.6中的.attr()方法的变化被理解的清楚些,下面是一些使用.attr()的例子,虽然在jQuery之前的版本中能正常工作,但是现在必须使用.prop()方法代替:

 



0 0
原创粉丝点击