IE8下这个好用 :$("input:radio[@name='timeType'][@checked]").val(); 火狐4下这个好用:$("input:radio[name='timeType'][checked]").val();这是为什么呢?除了判断浏览器版本外,大家还有别的解决办法不?jquery版本1.5.1

解决方案 »

  1.   


    //头一回看到[checked]这样的选择器。。
    $("input:radio[name='timeType']:checked").val()
      

  2.   

    前面那种方式是jq1.26之类的版本用的吧,现在都不要@符号了$(":radio[name='timeType']:checked").val();
    这样应该都兼容吧
      

  3.   

    //又翻了一下官方api,果然可以使用[name]这样的选择器,也在IE8、FF下面测试了一下,下面这种写法没问题啊
    $("input:radio[name='timeType'][checked]").val()
      

  4.   

    刚刚试一下这种写法 在火狐下可以,在IE8下得到是null,杯具啊
      

  5.   

    再试一下:
    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js"></script>
    <script type="text/javascript">
    function sh() {
    alert($("input:radio[name='timeType'][checked]").val());
    }
    </script>
    </head><body>
    <input type="radio" name="timeType" value="1" />1&nbsp;<input type="radio" name="timeType" value="2" />2<br />
    <input type="radio" name="test" value="123" />123&nbsp;<input type="radio" name="rest" value="abc" />abc<br /><input type="button" id="btn" value="点爷显示timeType值" onclick="sh();" />
    </body>
    </html>
      

  6.   


    感谢楼上的提醒,问题原因找到了,原来是
    <script type="text/javascript" src="./js/jquery_wizard.js"></script>
    去掉这个就OK了。
    这个js影响了我的选择器,看来query_wizard.js很烂。