比如我想给value = 5的 单选按钮设置选中状态var radioObj = $('input[type=radio][name='test']');radioObj['value=5'].attr("checked", 'true');  // 这样貌似不起作用  请问这里改如何写

解决方案 »

  1.   

    $("input[type=radio][name='test'][value=5]").attr("checked","checked")
      

  2.   

    jquery支持链式操作的,你不起作用是因为写法错了
    2楼方法可以,如果你要链式操作可以这样写
    $('input[type=radio][name="test"]').find('[value=5]').attr("checked", 'true');
      

  3.   

    楼主获取对象属性的方法貌似没必要。jquery已经预订好了获取对象的方法就是: $(html)。要是再用一个变量传递这个对象,是没必要的。赞同1 楼的方法
      

  4.   

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>  
        <script type="text/javascript">
            function test() {
                //你的代码:
                //var radioObj = $('input[type=radio][name='test']');
                //radioObj['value=5'].attr("checked", 'true'); // 这样貌似不起作用 请问这里改如何写            //我的代码:
                var radioObj = $(":radio[name='test']");            //第一: 你上面全部写的是单引号, 要区分一下;
                radioObj.filter("[value=5]").attr("checked", true);  //第二: 从已有选择集里再取子对象集, 要用filter或者find, 两者区别你自己看一下相关教程            //3楼的说法:
                //楼主获取对象属性的方法貌似没必要。jquery已经预订好了获取对象的方法就是: $(html)。要是再用一个变量传递这个对象,是没必要的。赞同1 楼的方法
                
                //是不正确的, 对于大量的同父元素的操作, 如果每个都要全部写出来, 写的效率低, jQuery执行的效率也低, 因为每次都要去从头到尾找.
                //比如: 将 下面为3的radio设置为蓝色背景, 再执行一个alert("3 is OK"); 
                //为5的设置为红色背景, 再执行一个alert("5 is OK"); ....
            }
        </script>
    </head>
    <body>
        <input type="button" value="Test" onclick="test()" /><br/>
        <input type="radio" name="test" value="3" />3<br/>
        <input type="radio" name="test" value="4" />4<br/>
        <input type="radio" name="test" value="5" />5
    </body>
    </html>