首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Truthy和falsey值(jQuery对象)

Truthy和falsey值(jQuery对象)
EN

Stack Overflow用户
提问于 2015-05-27 01:04:23
回答 2查看 711关注 0票数 0

我正在实现一个函数来检查/取消选中单选按钮。

代码语言:javascript
复制
<!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对象都是真实的。

代码语言:javascript
复制
(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();
})();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-27 01:07:38

如果您有错误,您正在检查jquery对象上的javascript属性,您应该更改:

代码语言:javascript
复制
if (self.checked) {

至:

代码语言:javascript
复制
if (self.prop('checked')) {
票数 0
EN

Stack Overflow用户

发布于 2015-05-27 01:11:58

只需忘记jQuery,使用vanilla:

代码语言:javascript
复制
if (this.checked) {
    alert("if condition");
    this.checked = false;
} else {
    alert("else");
    this.checked = true;
}

注:可以简化如下:

代码语言:javascript
复制
alert((this.checked = !this.checked) ? "else" : "if condition");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30471480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档