当我选中一个复选框时,我希望它变成 <p>
#0099ff
。
当我取消选中该复选框时,我希望它撤消它。
我到目前为止的代码:
$('#checkbox').click(function(){
if ($('#checkbox').attr('checked')) {
/* NOT SURE WHAT TO DO HERE */
}
})
.click()
的函数。因此,我不明白您所说的“启用”和“禁用”是什么意思。如果选中该复选框,您可以调用函数 a()
。但是您必须编写反向函数以在复选框未选中时调用。我很困惑。
prop()
来解决这个问题想要使用 attr()
的目的;那时还没有创建 prop()
方法。然而,关于 this.checked
的答案可能仍然有用。
我会use .change()
和 this.checked
:
$('#checkbox').change(function(){
var c = this.checked ? '#f00' : '#09f';
$('p').css('color', c);
});
--
关于使用 this.checked
Andy E 写了一篇关于我们如何倾向于过度使用 jQuery 的精彩文章:Utilizing the awesome power of jQuery to access properties of an element。这篇文章专门讨论了 .attr("id")
的使用,但如果 #checkbox
是 一个 <input type="checkbox" />
元素,$(...).attr('checked')
(甚至 $(...).is(':checked')
)与 { 3}。
尝试这个。
$('#checkbox').click(function(){
if (this.checked) {
$('p').css('color', '#0099ff')
}
})
有时我们会过度使用 jquery。使用带有纯 javascript 的 jquery 可以实现很多事情。
“this.checked”可能总是“打开”。因此,我建议:
$('#checkbox').change(function() {
if ($(this).is(':checked')) {
console.log('Checked');
} else {
console.log('Unchecked');
}
});
最好用不同颜色定义一个类,然后切换类
$('#checkbox').click(function(){
var chk = $(this);
$('p').toggleClass('selected', chk.attr('checked'));
})
这样你的代码就更干净了,因为你不必指定所有的css属性(假设你想添加一个边框、文本样式或其他......)但你只需切换一个类
#checkbox
是 一个复选框(如果不是,则 ID 相当具有误导性),则没有理由执行 $('#checkbox').attr('checked')
。 this.checked
可以。
我发现了一个疯狂的解决方案来处理未选中或选中的复选框问题,这是我的算法...创建一个全局变量让我们说 var check_holder
check_holder 有 3 个状态
未定义状态 0 状态 1 状态
如果单击复选框,
$(document).on("click","#check",function(){
if(typeof(check_holder)=="undefined"){
//this means that it is the first time and the check is going to be checked
//do something
check_holder=1; //indicates that the is checked,it is in checked state
}
else if(check_holder==1){
//do something when the check is going to be unchecked
check_holder=0; //it means that it is not checked,it is in unchecked state
}
else if(check_holder==0){
//do something when the check is going to be checked
check_holder=1;//indicates that it is in a checked state
}
});
上面的代码可以在很多情况下用来判断一个复选框是否被选中。其背后的概念是将复选框状态保存在一个变量中,即当它打开、关闭时。我希望逻辑可以用来解决你的问题。
检查此代码:
<!-- script to check whether checkbox checked or not using prop function -->
<script>
$('#change_password').click(function(){
if($(this).prop("checked") == true){ //can also use $(this).prop("checked") which will return a boolean.
alert("checked");
}
else if($(this).prop("checked") == false){
alert("Checkbox is unchecked.");
}
});
</script>
$('#checkbox').change(function(){
(this.checked)?$('p').css('color','#0099ff'):$('p').css('color','another_color');
});
可能您可以使用此代码在复选框被选中或未选中时采取行动。
$('#chk').on('click',function(){
if(this.checked==true){
alert('yes');
}else{
alert('no');
}
});
我会做 :
$('#checkbox').on("change", function (e){
if(this.checked){
// Do one thing
}
else{
// Do some other thing
}
});
请参阅:https://www.w3schools.com/jsref/prop_checkbox_checked.asp
最佳实施
$('#checkbox').on('change', function(){
$('p').css('color', this.checked ? '#09f' : '');
});
演示
$('#checkbox').on('change', function(){ $('p').css('color', this.checked ? '#09f' : ''); });
大家好学习一门课程很重要,但同时也有很多工作和痛苦。
事实上,归根结底,任何人都不应该进行任何形式的锻炼,除非他从中获得了一些好处。不要在责备中对痛苦感到愤怒,在快乐中他要成为痛苦中的一根头发,让他逃离痛苦。除非被情欲蒙蔽,否则他们不会出来;他们有过错,谁放弃了自己的职责,软化了他们的心,那就是劳苦。
为什么不使用内置事件?
$('#checkbox').click(function(e){
if(e.target.checked) {
// code to run if checked
console.log('Checked');
} else {
//code to run if unchecked
console.log('Unchecked');
}
});
不定期副业成功案例分享
$(':checkbox')
以使其正常工作;)