为了账号安全,请及时绑定邮箱和手机立即绑定

请前辈们为我答疑解惑,在下感激不尽!关于是否用“”

先来看一段代码(称这一段为“第一段代码”)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>:checkbox表单选择器</title>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    </head>
    
    <body>
        <h3>将表单的全部复选框设为不可用</h3>
        <form id="frmTest" action="#">
        <input type="button" value="Input Button" /><br />
        <input id="Checkbox1" type="checkbox" />
        <label for="Checkbox1">
            西红柿</label><br />
        <input id="Checkbox2" type="checkbox" />
        <label for="Checkbox2">
            茄子</label><br />
        <input id="Checkbox3" type="checkbox" />
        <label for="Checkbox3">
            黄瓜</label><br />
        <button>
            Button</button><br />
        </form>
        
        <script type="text/javascript">
            $("#frmTest :checkbox").attr("disabled","true");
        </script>
    </body>
</html>

这段代码第26行有这么一句话:

$("#frmTest :checkbox").attr("disabled","true");

经我实验有下列状态

$("#frmTest :checkbox").attr("disabled","true");        //可以用

$("#frmTest :checkbox").attr("disabled",true);           //可以用    去掉了“”




再来看下面这段代码(称之为“第二段代码”)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>:checkbox表单选择器</title>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    </head>
    
    <body>
        <h3>将表单的全部复选框设为不可用</h3>
        <form id="frmTest" action="#">
        <input type="button" value="Input Button" /><br />
        <input id="Checkbox1" type="checkbox" checked />
        <label for="Checkbox1">
            西红柿</label><br />
        <input id="Checkbox2" type="checkbox" checked />
        <label for="Checkbox2">
            茄子</label><br />
        <input id="Checkbox3" type="checkbox" checked />
        <label for="Checkbox3">
            黄瓜</label><br />
        <button>
            Button</button><br />
        </form>
        
        <script type="text/javascript">
            $("#frmTest :checkbox").attr("checked",false);
        </script>
    </body>
</html>

在第26行有这么一段代码:

$("#frmTest :checkbox").attr("checked",false);        

经我实验有下列状态

$("#frmTest :checkbox").attr("checked",false);        //可以正常运行

$("#frmTest :checkbox").attr("checked",“false");        //不能正常运行   (添加了"")


说明:

1.第一段代码与第二段代码分别在第 7 . 10 . 13 行添加了一个checked;

2.第一段代码与第二段代码的第26行不同。


问题

  1. 关于attr(a,b)中的 b 何时加""何时不用加。

  2. 类似与这种关于双引号的问题,还有在哪些语句中需要注意,又该怎么区分使用?


最后

希望前辈们能说得更为详细一点,在下感激不尽!


正在回答

3 回答

忘了一种情况,如果后面的value不是字符串(如:”fd或者 5) 或着什么都没有,那这句代码是没有实际意义的,也就什么影响都没有!

0 回复 有任何疑惑可以回复我~
#1

浅草是彬

value 是整數或者浮點數都有效,這是什麽鬼?怎麽解釋呢?如: $("#frmTest #Checkbox1:checkbox").attr("checked",5);
2015-11-17 回复 有任何疑惑可以回复我~

这个问题其实是这样的:当true或false没有引号的时候,运行是正常的,这个没有异议;但是当有引号的时候,$("#frmTest :checkbox").attr("checked",“false"); 和$("#frmTest :checkbox").attr("disabled","true");   都是错误的语句!!!那错误时怎么处理呢?只处理前面的“checked”,默认checkbox的属性中有checked,其默认值是checked="checked"(html 中的显示,不是true和false,他两只是转换)!!  你可以输入checked="wangbadan"试试!!

1 回复 有任何疑惑可以回复我~
$(selector).attr(attribute,value)

value 这个参数,你若是加了双引号,那么JQ就会把它当做字符串处理,

若是不加,那就是关键字


官方建议的写法是, 属性和参数都加双引号处理..

但是事实上,对于boolean类型,不加双引号,大多都可以正确执行

0 回复 有任何疑惑可以回复我~
#1

xueling 提问者

谢谢回答,不过我还有个问题,依据官方建议:在第二段代码中:把第26行中的value加上"",即改成"false"。它却不能正确运行了,可是个例外?求解
2015-05-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

请前辈们为我答疑解惑,在下感激不尽!关于是否用“”

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信