<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery 在屬性 中傳變量 </title>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var zc="zi".length; //zi在類屬性class標識是子復選框 復到字符串的長度 和標識的 fu 長度是一樣的 在這裡共用一個
checkbox.click(function() { //單擊復選框 觸發事件函數
var checkbox=$(this);
var name=$(this).attr("class");
var b1=name.substring(zc,name.length); //得到所單擊的這個復選框後綴的數字組合
var bb=$(this).attr("checked"); //判斷選中或未選中 true or false
var b="fu"+b1; //父 復選框class 的組合
var a = "zi"+b1; //子復選框class的組合
var b22=$('td input[class="'+b+'"]'); //鏈接字符 得到父 復選框 此用的是屬性選擇器
if(bb==true){
$(b22[0]).attr("checked",true); //當被選中的時候 父的 復選框也會選中
}else if(bb==false){
var box=$('td input[class="'+a+'"]:checked'); //取消選中 會判斷 還有被選中的個數 等於零時 父的復選框取消選中 大於零時 選中
var cd=box.length;
if(cd==0){
$(b22[0]).attr("checked",false);
}else if(cd>0){
$(b22[0]).attr("checked",true);
}
}
});
});
</script>.
</head>
<body>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td scope="col">父選框<input type="checkbox" class="fu1" /> </td>
</tr>
<tr>
<td>蘋果<input type="checkbox" class="zi1" /></td>
</tr>
<tr>
<td>香蕉<input type="checkbox" class="zi1" /></td>
</tr>
<tr>
<td>桔子<input type="checkbox" class="zi1" ></td>
</tr>
<tr>
<td scope="col">父選框<input type="checkbox" class="fu2" /> </td>
</tr>
<tr>
<td>蘋果<input type="checkbox" class="zi2" /></td>
</tr>
<tr>
<td>香蕉<input type="checkbox" class="zi2" /></td>
</tr>
<tr>
<td>桔子<input type="checkbox" class="zi2"></td>
</tr>
</table>
</body>
</html>
此種方式效率比較高一些
還有一種方式 如下:而下用的是循環遍歷進行比較的,選項比較多的話,會影響到代碼的執行效率。這裡用到了自定義 屬性的方法
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript">
$(function(){
$('[type=checkbox]').click(function (){
$('.fu').each(function(){
var sign = $(this).attr('sign');
var flag = true;
$('.zi'+sign).each(function(){
//alert($(this).attr('names'));
if($(this).attr("checked")){
//alert('aaa');
//alert("dddd"+sign );
flag= false;
}
});
if(flag){
//alert($(this).attr('checked'));
$(this).attr('checked',false);
//alert("dddd"+sign );
flag= true;
} else {
$(this).attr('checked',true);
flag= true;
}
});}) ;
});
</script>.
</head>
<body>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td scope="col">父選框<input type="checkbox" class="fu" sign="1"/> </td>
</tr>
<tr>
<td>蘋果<input type="checkbox" class="zi1" names="蘋果"/></td>
</tr>
<tr>
<td>香蕉<input type="checkbox" class="zi1" names="香蕉"/></td>
</tr>
<tr>
<td>桔子<input type="checkbox" class="zi1" names="桔子"/></td>
</tr>
<tr>
<td scope="col">父選框<input type="checkbox" class="fu" sign="2"/> </td>
</tr>
<tr>
<td>蘋果<input type="checkbox" class="zi2" names="蘋果"/></td>
</tr>
<tr>
<td>香蕉<input type="checkbox" class="zi2" names="香蕉" /></td>
</tr>
<tr>
<td>桔子<input type="checkbox" class="zi2" names="桔子"></td>
</tr>
</table>
</body>
</html>
作者“highfly-s”