jquery如何实现treeview的级联选择

2023-05-08,

这篇文章给大家分享的是有关jquery如何实现treeview的级联选择的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

   jquery.treeview的使用很简单,将treeview的样式文件及js先拷入项目相应目录中,需要注意的是,p_w_picpaths文件要和jquery.treeview.css同目录,当然你也可以直接修改css样式中的路径。

<link rel="stylesheet" href="css/jquery.treeview.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.treeview.js"></script>
<script type="text/javascript">
        $(document).ready(function() {
            $("#jqTree").treeview({
                    animated: "fast",
                    persist: "location",
                    collapsed: true,
                    unique: true
            });
        });
</script>

   目录树的示例如下:

<ul class="class0" id="jqTree">
    <li><input type="checkbox" name="cks" value=1 /><a href="#">第一级1</a>  </li>
    <li><input type="checkbox" name="cks" value=2 /><a href="#">第一级2</a>
        <ul class="class1">
            <li><input type="checkbox" name="cks" value=01 /><a href="#">第二级1</a></li>
            <li><input type="checkbox" name="cks" value=02 /><a href="#">第二级2</a>
                <ul class="class2">
                    <li><input type="checkbox" name="cks" value=000 /><a href="#">第三级1</a><input type="checkbox" name="cks" value=222 /><a href="#">第三级2</a></li>
                    <li><input type="checkbox" name="cks" value=001 /><a href="#">第三级3</a></li>
                    <li><input type="checkbox" name="cks" value=002 /><a href="#">第三级4</a>
                        <ul class="class3">
                            <li><input type="checkbox" name="cks" value=0000 /><a href="#">第四级1</a><input type="checkbox" name="cks" value=0001 /><a href="#">第四级2</a></li>
                            <li><input type="checkbox" name="cks" value=0002 /><a href="#">第四级3</a><input type="checkbox" name="cks" value=0004 /><a href="#">第四级4</a></li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

   关键的js代码是级联操作,当我选择某一个节点时,要将相应的子节点及祖先节点进行相应选择,当取消选择时,要先判断祖先节点下面是否还有选中的项,如有没有,则也要取消祖先节点的选择。

$(".content input[type='checkbox'][name='cks']").click(function() {
    //子孙目录
    var c = $(this).parent().find("input");
    var b = $(this).attr('checked');$(this).attr('checked', b);
    c.each(function() {
        $(this).attr('checked', b);
    });
               
    //祖先目录
    var count = 0;
    var p = $(this).parents('li');//所有祖先目录
    p.each(function(i) {
        if (i===0){
        }else{
            var o = $(this).find('input');
            if (count) {
                o[0].checked = true;
            } else {
                o[0].checked = false;
            }
        }
        var ulChildren = $(this).parent('ul').find('input');
        count = 0;
        ulChildren.each(function() {
            if ($(this).attr('checked')) {
                count++;//当前节点的父结点被选中个数
            }
        });
    });
});

感谢各位的阅读!关于“jquery如何实现treeview的级联选择”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

《jquery如何实现treeview的级联选择.doc》

下载本文的Word格式文档,以方便收藏与打印。