Javascript 显示默认选中的复选框

Javascript 显示默认选中的复选框,javascript,jquery,html,css,checkbox,Javascript,Jquery,Html,Css,Checkbox,它是一个带有“+”和“-”符号的树结构,用于指示该项是否有子项。 它应该像这样工作: 首先,所有带有带“+”符号的子项 如果选中项目或复选框,则符号将转换为“-” 如果项目未选中或复选框未选中,则符号将转换为“+” 工作原理: 首先,所有项目都未选中,“+”符号存在 单击任何 项,则首先取消选中该项并保留“+”符号 点击 对于所选项目,将选中该项目并将其更改为“-”符号 $(文档).ready(函数(){ var toggle=函数(){ if($(this.parent().fin

它是一个带有“+”和“-”符号的树结构,用于指示该项是否有子项。 它应该像这样工作:

  • 首先,所有带有带“+”符号的子项
  • 如果选中项目或复选框,则符号将转换为“-”
  • 如果项目未选中或复选框未选中,则符号将转换为“+”
工作原理:

  • 首先,所有项目都未选中,“+”符号存在
  • 单击任何 项,则首先取消选中该项并保留“+”符号
  • 点击 对于所选项目,将选中该项目并将其更改为“-”符号

$(文档).ready(函数(){
var toggle=函数(){
if($(this.parent().find(“input”).is(':checked')){
控制台日志(“已检查”);
$(this).parent('li:has(>ul')).find(“span:first”).removeClass(“glyphicon glyphicon加号”).addClass(“glyphicon减号”);
}否则{
控制台日志(“未选中”);
$(this).parent('li:has(>ul')).find(“span:first”).removeClass(“glyphicon glyphicon减号”).addClass(“glyphicon glyphicon加号”);
}
$(this.parent().children().toggle();
$(this.toggle();
};
$(“.Collapsable”)。单击(切换);
$(“.Collapsable”)。每个(切换);
$('.tree li:not(:has(>ul))).find(“span:first”).addClass(“glyphicon glyphicon书签”);
});
ul.tree,
树{
列表样式:无;
保证金:0;
填充:0;
}
树{
左边距:0px;
}
李树{
保证金:0;
左边距:20px;
填充:0 7px;
线高:20px;
颜色:#369;
字体大小:粗体;
左边框:1px实心rgb(100100100);
}
李树:最后一个孩子{
左边界:无;
}
李树:以前{
位置:相对位置;
顶部:-0.3em;
高度:1米;
宽度:12px;
颜色:白色;
边框底部:5px实心rgb(100100100);
内容:“;
显示:内联块;
左:-7px;
}
李树:最后一个孩子:之前{
左边框:1px实心rgb(100100100);
}
输入[类型=复选框]{
位置:绝对位置;
页边距顶部:4px\9;
左边距:-20px;
可见性:隐藏;
}
输入[类型=复选框]+标签{
显示:首字母;
}
输入[类型=复选框]:选中+标签{
颜色:#f00;
}

  • 一个
    • 一对一
    • 1-2
      • 1-1-1-1
      • 1-1-1-2
  • 两个
    • 二比一
      • 2-1-1
      • 2-1-2
    • 二比二
您能检查一下吗

我通过检查
ul
项的可见状态来更新代码,而不是检查复选框是否被选中

if (!$(this).closest("li").find("ul:first").is(":visible") && $(this).closest("li").is(":visible")) {

所以,这就像是双重检查。检查最近的“li”的第一个“ul”和最近的“li”本身是否可见,而不是选中复选框。非常感谢。是的。。。你是对的。。否则,它会使第二个孩子成为相反的模式