解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>第一个简单的jQuery程序</title>
        <script language="javascript" type="text/javascript"  src="../js/jquery-1.4.1.js"></script>
    <script type="text/javascript" src="../js/jquery.treeview.js"></script><script type="text/javascript" src="../js/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="../js/jquery.ui.accordion.js"></script>
    <link type="text/css" rel="stylesheet" href="../css/fristDiv.css" />
    <link type="text/css" rel="stylesheet" href="../css/jquery.treeview.css" />    <script type="text/javascript">
        $(document).ready(function(){
    //$(".caidan").accordion({header:'.er'});
     $(".cai").treeview({
    collapsed: true,
    animated: "medium",
    CheckBoxes:true,

    persist: "location"
    }); $("li input[type='checkbox']").click(function(){
    //alert($(this).attr("checked"));
    $(this).parent().next("ul").find("input[type='checkbox']").attr("checked",$(this).attr("checked"));
    });
    });    </script>
    </head>
    <body><ul class="cai"  style="float:left">
    <li class="hmain" ><div class="er" style=" "><input type="checkbox" name="functionid"/>菜单1</div>
    <ul><li class="san" ><input type="checkbox" name="functionid"/>菜单11</li class="san" ><li class="san" ><input type="checkbox" name="functionid"/>菜单12</li></ul>
    </li>
    <li class="hmain" ><div class="er" style=""><input type="checkbox" name="functionid"/>菜单2</div>
    <ul><li class="san" ><input type="checkbox" name="functionid"/>菜单11</li><li class="san" ><input type="checkbox" name="functionid"/>菜单12</li></ul>
    </li>
    <li class="hmain" ><div class="er" style="">菜单2</div>
    <ul><li class="san" >菜单11</li><li class="san" >菜单12</li></ul>
    </li>
    </ul>
    </div>
    </body>
    </html>
      

  2.   

    可是我用的是treeview,我的是vs2005
      

  3.   

    你就用这就行了 
    $("li input[type='checkbox']").click(function(){
    //alert($(this).attr("checked"));
    $(this).parent().next("ul").find("input[type='checkbox']").attr("checked",$(this).attr("checked"));
    });主要还是要看你的列表时怎么设计的。
      

  4.   

     function getcheck() {
                var o = window.event.srcElement;
                if (o.tagName == "INPUT" && o.type == "checkbox") //点击treeview的checkbox是触发
                {
                    var d = o.id; //获得当前checkbox的id;             
                    var e = d.replace("CheckBox", "Nodes"); //通过查看脚本信息,获得包含所有子节点div的id
                    var div = window.document.getElementById(e); //获得div对象
                    if (div != null) //如果不为空则表示,存在子节点
                    {
                        var check = div.getElementsByTagName("INPUT"); //获得div中所有的已input开始的标记
                        for (i = 0; i < check.length; i++) {
                            if (check[i].type == "checkbox") //如果是checkbox
                            {
                                check[i].checked = o.checked; //字节点的状态和父节点的状态相同,即达到全选
                            }
                        }
                    }
                    //处理父节点
                    var divid = o.parentElement.parentElement.parentElement.parentElement.parentElement; //子节点所在的div
                    while (divid != null) {
                        var id = divid.id.replace("Nodes", "CheckBox"); //获得根节点的id
                        var checkbox = divid.getElementsByTagName("INPUT"); //获取所有子节点数
                        var s = 0;
                        for (i = 0; i < checkbox.length; i++) {
                            if (checkbox[i].checked) //判断有多少子节点被选中
                            {
                                s++;
                            }
                        }
                        if (s == checkbox.length) //如果全部选中 或者 选择的是另外一个根节点的子节点 ,
                        {                               //    则开始的根节点的状态仍然为选中状态
                            window.document.getElementById(id).checked = true;
                        }
                        else {                               //否则为没选中状态
                            window.document.getElementById(id).checked = false;
                        }
                        divid = window.document.getElementById(id).parentElement.parentElement.parentElement.parentElement.parentElement;                }
                }
            }
    其实我要的是这样的效果,但是好像js代码出问题了,麻烦你帮我看一下可以吗
      

  5.   

    我的意思是,我用的一个treeview树形控件,之后我要控制选择节点,如果父节点选中,其底下的子节点全部选中,如果子节点有一个取消选择,那么相对应的父节点也取消选中
      

  6.   

    你那个不可以的,我的树形结构绑定数据不同的,我发的上面的js代码效果是有的就是会提示错误,说我后面获取id那个地方出错了