Javascript 使用jquery预设html勾选框
这个代码Javascript 使用jquery预设html勾选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,这个代码 $("#x").removeAttr("checked").removeAttr("unchecked").attr("foo","bar"); 此html输入的结果: <input type="checkbox" id="x" foo="bar"> 结果如下: <input type="checkbox" id="x" checked="checked"> 发生了什么事?尽管有这个checked=“checked”属性,复选框仍然顽固地未选中 切换H
$("#x").removeAttr("checked").removeAttr("unchecked").attr("foo","bar");
此html输入的结果:
<input type="checkbox" id="x" foo="bar">
结果如下:
<input type="checkbox" id="x" checked="checked">
发生了什么事?尽管有这个checked=“checked”属性,复选框仍然顽固地未选中
切换HTML输入的选中属性的最佳方法是什么?要切换选中属性,请使用
.prop()
而不是.attr()
:
如果需要另一个按钮切换复选框,可以使用:
var $x = $('#x'); // don't query every click - Credit: Roko :)
$('.button').click(function(){
$x.prop('checked', !$x.is(':checked'));
})
要切换选中状态,请使用
.prop()
而不是.attr()
:
如果需要另一个按钮切换复选框,可以使用:
var $x = $('#x'); // don't query every click - Credit: Roko :)
$('.button').click(function(){
$x.prop('checked', !$x.is(':checked'));
})
checked=“true”
是不正确的HTML,因此JQuery隐式地将其转换为checked=“checked”
。另一个答案提供了更好的解决方案,因为在这种情况下不需要使用removeAttr
。checked=“true”
是不正确的HTML,因此JQuery隐式地将其转换为checked=“checked”
。另一个答案提供了更好的解决方案,因为在这种情况下不需要使用removeAttr
$('#x')[0].checked = true; // true / false
切换:
切换:
$('.button')。单击(function(){var$x=$('#x');//不要查询两次!
“不要查询两次”…但也不要每次单击都进行查询。@RokoC.Buljan我已经更新并为您评分:),我相信真正的网站#x会更动态..每个复选框或类似的按钮..但您显然是对的。$('按钮')。单击(function(){var$x=$('\35; x');//不要查询两次!
“不要查询两次”…但也不要每次单击@RokoC.Buljan我更新并给予您学分:),我相信在一个真正的网站上,#x将更具动态性。每个复选框或类似的按钮。但你显然是对的。
$('#x')[0].checked = true; // true / false
var $cbx = $('#x')[0];
$('#toggle').click(function(){
$cbx.checked = !$cbx.checked;
});