为什么当你点击第一个按钮时没有崩溃?为什么当引用相同的ckeckbox时,一个脚本不起作用而另一个脚本正确无效?
$('.button1').click(function(event){
//console.log("click1");
$('#table1 .checkbox1').prop('checked',true);
});
$('.button2').click(function(event){
//console.log("click2");
$('.checkbox1').prop('checked',true);
});
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<table id="table1">
<input type="checkbox" class="checkbox1" />
<input type="button" class="button1" value="Checked1" />
<input type="button" class="button2" value="Checked2" />
</table>
答案 0 :(得分:1)
由于浏览器正在清理您的标记,并删除<table id="table1"></table>
(因为它不是完整标记的有效标记 - input
不能是table
的直接子项。)
因此,您的选择器(#table1 .checkbox1
)与任何元素都不匹配。您呈现的标记如下所示:
<input type="checkbox" class="checkbox1" />
<input type="button" class="button1" value="Checked1" />
<input type="button" class="button2" value="Checked2" />
<table id="table1">
</table>
图片供Chrome Dev Tools参考:
答案 1 :(得分:1)
在渲染上面的html时,input
内没有<table id="table1">
元素,所以你的第一个按钮不起作用。当您从代码中删除#table1
选择器时,它将起作用。或者您需要添加有效标记,因为只需将table
更改为div
。
$('.button1').click(function(event){
//console.log("click1");
$('#table1 .checkbox1').prop('checked',true);
});
$('.button2').click(function(event){
//console.log("click2");
$('.checkbox1').prop('checked',true);
});
&#13;
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<div id="table1">
<input type="checkbox" class="checkbox1" />
<input type="button" class="button1" value="Checked1" />
<input type="button" class="button2" value="Checked2" />
</div>
&#13;
OR
$('.button1').click(function(event){
//console.log("click1");
$('.checkbox1').prop('checked',true);
});
$('.button2').click(function(event){
//console.log("click2");
$('.checkbox1').prop('checked',true);
});
&#13;
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<table id="table1">
<input type="checkbox" class="checkbox1" />
<input type="button" class="button1" value="Checked1" />
<input type="button" class="button2" value="Checked2" />
</table>
&#13;
使用表ID
$('.button1').click(function(event){
//console.log("click1");
$('#table1').parent().find('.checkbox1').prop('checked',true);
});
$('.button2').click(function(event){
//console.log("click2");
$('.checkbox1').prop('checked',true);
});
&#13;
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<table id="table1">
<input type="checkbox" class="checkbox1" />
<input type="button" class="button1" value="Checked1" />
<input type="button" class="button2" value="Checked2" />
</table>
&#13;