今天写一段定制页面的jquery代码,发现好多都没有记忆,于是一边写,一边百度。
具体列的形式如下图:

需求就是控制列的显示,比如激活数、注册数等等可显示或不显示,每一个统计最多显示5天少则1天可定制。
这是最后的代码:
$("input:checkbox[name^='checkStat_']").each(function(index,eachCheckStat){
if($(eachCheckStat).is(":checked")) {
var tempTh = $("th[id*='"+$(eachCheckStat).attr("id")+"']");
if($(tempTh).css("display") == "none") {
$(tempTh).show();
}
for(var i = 0;i < $("input[name='dayCheck']").length;i++){
var tempTd = $("td[id^='" + $($("input[name='dayCheck']")[i]).attr("id") + "_"+$(eachCheckStat).attr("id")+"']");
if($($("input[name='dayCheck']")[i]).is(":checked")){
if($(tempTd).css("display") == "none") {
$(tempTd).show();
}
} else{
$(tempTd).hide();
}
}
} else {
$("th[id*='"+$(eachCheckStat).attr("id")+"']").hide();
$("td[id*='"+$(eachCheckStat).attr("id")+"']").hide();
}
});
$("th[id^='th_']").attr("colspan",$("input[name='dayCheck']:checked").length);
用到的jquery,总结如下:
1. 获取所有复选框:$(":checkbox") 或 $("input:checkbox"),返回的是一个集合元素,需要循环迭代。
2. 获取所有选中的复选框:$("input:checkbox:checked") 或 $(":checkbox:checked"),返回的是一个集合元素,需要循环迭代。
3. 判断复选框是否选中,$("").is(":checked"),如果是选中状态返回true,未选中状态返回false。
4. 集合循环:$().each(function(){$(this)})//$(this)代表循环到的元素或者$().each(function(index,element){$(element)})//$(element)表示循环到的元素
5.选择器,这里只用到了name选择器,
$("input[name='dayCheck']"),获取所有name为dayCheck的input元素
$("td[id^="day_5");,获取id以day_5开头的元素
$("th[id*=“activitionCount”)获取id包含activitionCount的元素
6. 用到了元素的显示,隐藏,
$().show()是显示元素,$().hide()是隐藏元素。
.css("display")结果为none表示元素不显示,其他表示显示(因为我看到了除了none、block以外的值),
.is(":hidden"),true表示元素是隐藏的,false表示元素是显示的
.is(":visible"),true表示元素是显示的,false表示元素是隐藏的。
1625

被折叠的 条评论
为什么被折叠?



