我正在实现一个函数来检查/取消选中单选按钮。
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src = "http://code.jquery.com/jquery-2.1.4.min.js"> </script>
</head>
<body>
<form action="">
<input type="radio" name="sex" value="male" checked>Male<br>
<input type="radio" name="sex" value="female">Female
</form>
<script src = "../javascript/defaultCheckRadio.js"></script>
</body>
</html> 此代码正在执行此任务,但我不明白为什么不触发if块中的警报。据我理解,应该触发它,因为所有jQuery对象都是真实的。
(function () {
var inElement = $('input');
var changeCheck = {
init: function () {
this.check();
},
check: function () {
$.each(inElement, function() {
var self = $(this);
if (self.checked) {
alert("if condition");
self.prop('checked',false);
} else {
alert("else");
self.prop('checked',true);
}
});
},
};
window.changeCheck = changeCheck.init();
})();发布于 2015-05-27 01:07:38
如果您有错误,您正在检查jquery对象上的javascript属性,您应该更改:
if (self.checked) {至:
if (self.prop('checked')) {发布于 2015-05-27 01:11:58
只需忘记jQuery,使用vanilla:
if (this.checked) {
alert("if condition");
this.checked = false;
} else {
alert("else");
this.checked = true;
}注:可以简化如下:
alert((this.checked = !this.checked) ? "else" : "if condition");https://stackoverflow.com/questions/30471480
复制相似问题