jQuery checkbox“checked”返回 undefined

昨天在用js做一个“记住我”的功能的时候,遇到一个问题:

   如何响应用户“选中或者取消选中”checkbox的操作?

于是乎我就上网上去检索了,然后我就发现了网友们的答

案,大体思路就是 通过jQuery来响应checkbox的click事件,

然后在click中检测checkbox的checked属性,通过判断它

的true or false来判定是否选中,从而采取响应的操作。

实现的代码如下:

$("#checkme").click(function(){
        //alert($("#checkme").attr("checked"));
        
        if($("#checkme").prop("checked"))
        {
            alert("checked");
        }
        else
        {
            alert("no check"); 
        }
    });

 


PS:

checkme是我在html文件中给checkbox定义的id属性。

按照思路,我们的这段代码在用户单击checkbox时,

如果被选中就返回checked,否则就返回no checked。


Then,我就去测试我的代码了,但是在测试过程中却发现:

    无论我是单击 选中checkbox还是单击取消选中checkbox

    网页输出的总是“no checked”,这是怎么个情况呢?

    难道 if($("#checkme").attr("checked"))   总是返回false?

    不应该呀,我还是输出一下 返回 的东西吧,于是

alert($("#checkme").attr("checked"));
   

    通过上面的代码,我发现返回值并不是 “false” ,而是

    undefined,js的”==“运算符把 undefined 也认同为false了。

    那么为什么会出现undefined呢?

 接着我又继续在网上检索了:

jQuery 1.6以后对于一些HTML元素的固有属性的获取

我们要使用prop()方法,而不再是attr()方法。

具体哪些元素哪些属性见下图,更详细的介绍见文档(链接我就不贴了)。


OK,到此我们的问题就解决啦,谢谢阅读。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值