watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHpqOTExOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

要实现的效果:

1、父节点选中,则以下的子节点全选中

2、父节点不选中。则以下的子节点全不选中

3、子节点仅仅要选中了一个,则父节点选中

4、子节点全不选中。则父亲节点不选中

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'quanxian.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page"> <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript"> function selectAll(idStart){
var x = $("input[id^='"+idStart+"']");
x.each(function(index,domEle){
$(this).prop("checked",true);
}); } function unSelectAllBox(idStart){
var x = $("input[id^='"+idStart+"']");
x.each(function(index,domEle){
$(this).removeProp("checked");
});
} function selectFather(id){
$("#"+id).prop("checked", "checked");
} function UnSelectFather(id){
$("#"+id).removeProp("checked");
} //推断还有没被选中的checkedbox
function isExistSelect(idStart){
var flag = false;
var $arrayEle=$("input[id^='"+idStart+"'][id!='"+idStart+"_"+idStart+"']");
for (var i=0; i<$arrayEle.length; i++){
if ($($arrayEle[i]).prop("checked")){
flag=true;
}
}
return flag;
} function goSelect(id){
var arrayVal=id.split("_");
if (arrayVal[0] == arrayVal[1]){//parent dom
if ($("#"+id).prop("checked")){
selectAll(arrayVal[0]);
}else{
unSelectAllBox(arrayVal[0]);
}
}else{//child dom if ($("#" + id).prop("checked")) {
selectFather(arrayVal[0] + "_" + arrayVal[0]);
}
else {
if (!isExistSelect(arrayVal[0])){
UnSelectFather(arrayVal[0] + "_" + arrayVal[0]);
}
}
}
} </script>
</head> <body> <fieldset>
<legend><input type="checkbox" id="company_company" onclick="goSelect(this.id)" />客户管理</legend>
<div><input type="checkbox" id="company_base" onclick="goSelect(this.id)"/>客户管理1</div>
<div><input type="checkbox" id="company_linkman" onclick="goSelect(this.id)" />客户管理2</div>
<div><input type="checkbox" id="company_linkTouch" onclick="goSelect(this.id)"/>客户管理3</div>
<div><input type="checkbox" id="company_rule" onclick="goSelect(this.id)"/>客户管理4</div> </fieldset> <br/>
<fieldset>
<legend><input type="checkbox" id="employee_employee" onclick="goSelect(this.id)" />员工管理</legend>
<div><input type="checkbox" id="employee_base" onclick="goSelect(this.id)"/>员工管理1</div>
<div><input type="checkbox" id="employee_linkman" onclick="goSelect(this.id)" />员工管理2</div>
<div><input type="checkbox" id="employee_linkTouch" onclick="goSelect(this.id)"/>员工管理3</div>
<div><input type="checkbox" id="employee_rule" onclick="goSelect(this.id)"/>员工管理4</div> </fieldset>
</body>
</html>

note:本例中获取节点属性用的是prop()方法,用attr()不行。。jquery 1.6版本号就对这两个方法进行了改变,attribute 表示从文档中获取DOM状态信息,而properties 表示动态信息元素,例如,使用复选框。

版权声明:本文博主原创文章,博客,未经同意不得转载。

jquery 访问控制菜单的更多相关文章

  1. jquery右键菜单

    点击这里体验效果 如果要屏蔽页面原来的右键菜单,请设置disable_native_context_menu:true 以下是源代码: <!DOCTYPE html> <html&g ...

  2. Smint – 用于单页网站制作的 jQuery 导航菜单插件

    Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...

  3. jQuery实现菜单点击隐藏(上下左右)

    canrun <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  4. jquery实现菜单功能(单击展开或者关闭)-一般应用于后台

    <!doctype html> <html> <head> <meta charset="gb2312"> <title> ...

  5. Jquery多级菜单插件Slimmenu使用说明

    Jquery多级菜单插件Slimmenu使用说明 现在扁平化设计逐渐的成为了趋势,不管是pc web,还是移动互联网的应用开发,都在研究和设计Flat ui, 这里有一篇文章说明扁平化的设计的一些想法 ...

  6. jQuery手风琴菜单!!!!

    jQuery手风琴菜单 第一次发博客也不知道说点什么好,以前敲得一个手风琴菜单刚刚整理出来了,就来分享个大家 手风琴的排版 排版完事了,接下来就写样式吧,把自己喜欢的颜色或者是图片添加进来,就会变成你 ...

  7. jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类

    jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类 本例有另外2个关联案例,演示地址分别为2.php,3.php 演示 XML/HTML Code <div class="ar ...

  8. jquery树形菜单

    转自:http://keleyi.com/dev/3068696139522ae4.htm 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...

  9. 分享14个很酷的jQuery导航菜单插件

    导航按钮是网站的非常重要的一部分,因其将网站的所有部分而集中一处,jQuery导航菜单插件在其中扮演重要的角色. 本文介绍了14个很酷的jQuery导航菜单插件,它们够漂亮.简单,并且完全兼容各种类型 ...

随机推荐

  1. 使用 Cordova+Visual Studio 创建跨平台移动应用(2)

    目前开发移动应用有三种模式:Native.Hybird.Web,若要开发跨平台的移动应用,又希望与本地API交互,那么Hybird是一个非常好的选择.       作为一个.Net程序员,可以使用熟悉 ...

  2. Ubuntu通过使用PyCharm 执行调试 Odoo 8.0 可能的问题

    实现步骤,请移步http://shine-it.net/index.php?topic=16603.0 或 http://www.mindissoftware.com/2014/09/11/Run-O ...

  3. 返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor)

    原文:返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor) [索引页][源码下载] 返璞归真 asp.net mvc (9) - asp.ne ...

  4. PHPSingleton模式的例子

    在这篇文章中PHPSingleton模式的解释不一定好!仅举它的一个例子.其目的是为了让自己通过一个例子来加深对Singleton模式的理解!这里,以供参考! 单例:能够简单的理解是通过一个类,仅仅能 ...

  5. 关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法

    原地址 http://blog.sina.com.cn/s/blog_912e77480101nuif.html   最近VPS的CPU一直处在100%左右,后台管理上去经常打不开,后来发现上远程都要 ...

  6. Visual Studio中开发

    如何在Visual Studio中开发自己的代码生成器插件    Visual Studio是美国微软公司开发的一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代 ...

  7. uav 11258 String Partition (DP)

    Problem F - String Partition                                                                         ...

  8. Webots入门(二)-build up a controller

    A simple controller 控制器程序读取传感器的值,然后改动行走速度来避开障碍物. 以下是控制器源码mybot_simple.c: #include<webots/robot.h& ...

  9. CSDN上看到的一篇有关Spring JDBC事务管理的文章(内容比较全) (转)

    JDBC事务管理 Spring提供编程式的事务管理(Programmatic transaction manage- ment)与声明式的事务管理(Declarative transaction ma ...

  10. 设计Kafka的High Level Consumer

    原文:https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example 为什么使用High Level Consumer ...