昨天我发了另一个帖子,但没有成功。现在我会尝试重新组织我的想法,并再次提问,因为我找不到解决方法(我是新手,正在非常努力地尝试)。
问题是我正在使用基于Bootstrap的模板,这是我在其中一个文件中直接看到的代码,并且我正在我的项目中使用它:
html片段:
<div class="hide" id="states">
<div class="control-group">
<label class="control-label">Seleccione</label>
<div class="controls">
<label class="checkbox span4">
<input type="checkbox" value="all" id="allstates" name="all"/>Todas
</label>
<label class="checkbox span4">
<input class="states" type="checkbox" value="Caba" id="" name="st[]"/>Ciudad Autónoma de Buenos Aires
</label>
<label class="checkbox span4">
<input class="states" type="checkbox" value="Buenos Aires" id="" name="st[]"/> Buenos Aires
</label>
<label class="checkbox span4">
<input class="states" type="checkbox" value="Catamarca" id="" name="st[]"/> Catamarca
</label>
</div>
</div>
</div>
经过大量搜索,我发现当检查代码时它看起来像这样(代码片段):
<div class="controls">
<label class="checkbox span4">
<div class="checker" id="uniform-allstates">
<span>
<input type="checkbox" value="all" id="allstates" name="all">
</span>
</div>Todas
</label>
<label class="checkbox span4">
<div class="checker">
<span>
<input class="states" type="checkbox" value="Caba" id="" name="st[]">
</span>
</div> Ciudad Autónoma de Buenos Aires
</label>
<label class="checkbox span4">
<div class="checker">
<span>
<input class="states" type="checkbox" value="Buenos Aires" id="" name="st[]">
</span>
</div> Buenos Aires
</label>
<label class="checkbox span4">
<div class="checker">
<span>
<input class="states" type="checkbox" value="Catamarca" id="" name="st[]">
</span>
</div> Catamarca
</label>
</div>
你可以看到,另外一个div和span被添加了进来(我真的不知道为什么或者如何),所以我猜现在我遇到的是一些DOM问题。
这是我的js文件的片段:
$('#allstates').click(function() {
$('.checkbox').find('span').addClass('checked');
});
所以这个函数选择了我所有的复选框(即使它们属于另一个类别,而我不想要它们)。
我想知道为什么要添加div和span,以及如何只选择我想要的复选框。
为此,我一直尝试着像这样编写代码,但没有成功:
测试1
$('#allstates').click(function() {
if ($(this).is(':checked')) {
$('span input').attr('checked', true);
} else {
$('span input').attr('checked', false);
}
});
测试2
$('#allstates').click(function() {
$(".states").prop("checked",$("#allstates").prop("checked"))
});
还有其他我擦除的内容。
注意:检查时没有显示任何JavaScript错误。