在一个页面中做js 的全选,而不影响别的全选,该怎么做,请指教,,急等谢谢
<tr>
<td class="td1" style="height: 24px; width: 20%">
教师组:
<input type="checkbox" id="cbTAll" />全选
</td>
<td class="td1" style="height: 24px; width: 60%">
<asp:CheckBoxList ID="cbTeacher" runat="server" DataTextField="ClassName" DataValueField="Id" name="cbTeacher"
RepeatDirection="Horizontal" RepeatColumns="3">
</asp:CheckBoxList>
</td>
</tr>
<tr>
<td class="td1" style="height: 24px; width: 20%">
学生组:
<input type="checkbox" id="cbSAll" />全选
</td>
<td class="td1" style="height: 24px; width: 60%">
<asp:CheckBoxList ID="cbStudent" runat="server" DataTextField="ClassName" DataValueField="Id" name="cbStudent"
RepeatDirection="Horizontal" RepeatColumns="3">
</asp:CheckBoxList>
</td>
</tr>
如果你会jquery的话就很简单了,
$(document).ready(function(){
$('#cbTAll').bind("click",function(){
$("input[name='cbTeacher']").each(function(i,obj){
$(obj).attr("checked",$("#cbTAll").attr("checked"));
})
})
$('#cbSAll').bind("click",function(){
$("input[name='cbStudent']").each(function(i,obj){
$(obj).attr("checked",$("#cbSAll").attr("checked"));
})
})
})
每一个CheckBoxList组成生成客户端ID前掇都不一样,可以通过JS遍历ID名称是否包含当前组的。
因为很多table中的第一列都是放checkbox,以进行复选,我就自己写了这么一个函数,希望对你有用.
//取得某个元素下过滤后的CheckBox,无fun参数则取得所有checkbox
//id:元素id或元素节点
//fun:参数chk-CheckBox元素,返回值-仅当返回true时才取得该CheckBox
function getCheckBoxesByFliterFun(id, fun){
if(typeof id == 'string')
id = document.getElementById(id);
var els = id.getElementsByTagName('input');
if(typeof fun == 'undefined'){
fun = function(){return true};
}
var result = [];
for(var i=0, len=els.length; i<len; i++){
var el = els[i];
if(el.type == 'checkbox' && fun(el) === true){
result.push(el);
}
}
return result;
}
//比如,取得id为'GV_Infos'节点下的所有已勾选的checkbox。当然,还可以在第二个参数(函数)的代码体中对checkbox进行操作、过滤等
var selChks = getCheckBoxesByFliterFun('GV_Infos',function(c){return !!c.checked });