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. nodejs添加路由route步骤详解

    首先,毋庸置疑, 新建一个基础express站点.建好之后, 有三个文件需要code(当然,三个步骤顺序随意). 下面以添加一个'/about'为例说明. 1. 在views文件夹里,新建一个jade ...

  2. Hive自己定义函数的使用——useragent解析

    想要从日志数据中分析一下操作系统.浏览器.版本号使用情况.可是hive中的函数不能直接解析useragent,于是能够写一个UDF来解析.useragent用于表示用户的当前操作系统,浏览器版本号信息 ...

  3. 全新E:网站不是之前排名浮动 相比于竞争对手究竟缺少了什么?

    这几天有非常多朋友问新辰,为什么站点排名掉了?为什么被人家逆袭反超了?当然,这无疑与你站点的内容.外链和用户体验有非常大关系,只是.新辰在此觉得,还须要多研究一下竞争对手的站点,做到:人无我有.人有我 ...

  4. ZOJ Monthly, October 2010 ABEFI

    ZOJ 3406 Another Very Easy Task #include <cstdio> #include <cstring> const int N = 10000 ...

  5. 由<a href = "#" > 引发的思考

    原文:由<a href = "#" > 引发的思考 前阵子在一个移动项目中,通过 <a href = "#" >  的方式 绑定clic ...

  6. Oracle生成查询包括对应于所有数据表记录语句中指定的字段名

    应用:已知的字段名,表中的所有数据的查询数据库中包含的所有数据表的字段名 操作方法:指定字段名,用户数据库表,它可以执行以下查询 --Oracle生成查询包括对应于所有数据表记录语句中指定的字段名 d ...

  7. C该结构变化 struct typedef

     这几天看代码,看到若干类型的结构,例如下列结构声明: struct    book{ string name; int price; int num; }; 此种结构定义结构变量的格式例如以下: ...

  8. 跨容器Hybrid离线组件方案

    关键词:跨容器.Hybrid.离线 摘要:今天主要讨论的是离线组件跨容器方案,想了解在线页面如何跨webview容器,可以看 http://www.cnblogs.com/yexiaochai/p/5 ...

  9. 如何成为游戏的生产者——第二章:如何开始你的编程(开发环境的搭建、C++语言适应)

    如何成为游戏的生产者--文章二章:怎样開始你的编程 小故事:上节说到我六年级打开了那本C语言的书,然后其实我还是没看懂.好像看懂了一些printf语句.之后遇到了史无前例的困难--怎么让代码执行起来. ...

  10. java注意事项演示 地图产生表 演示样本 来自thinking in java 4 20代码的章

    java注意事项演示 地图产生表 演示样本  来自thinking in java 4 20代码的章 thinking in java 4免费下载:http://download.csdn.net/d ...