单选按钮的jQuery值:“未捕获的语法错误,无法识别的表达式”

时间:2011-05-06 13:58:32

标签: javascript jquery

我正在尝试使用$("input[@name=login]")获取单选按钮的值,但是收到“未捕获的语法错误,无法识别的表达式”。

请参阅http://jsfiddle.net/fwnUm/,这里是完整的代码:

<!-- Radio buttons to choose signin/register -->
<fieldset data-role="controlgroup" data-theme="z" data-type="horizontal" >
    <input type="radio" name="login" id="radio-signin" value="signin" checked="checked" />
    <label for="radio-signin">Signin</label>
    <input type="radio" name="login" id="radio-register" value="register" />
    <label for="radio-register">Register</label>
</fieldset>
$(document).ready(function() {  
    $("input[@name=login]").change(function(){
      alert($("input[@name=login]:checked").val());
    });     
});

6 个答案:

答案 0 :(得分:10)

在jQuery 1.3中删除了类似XPath的属性选择器。 (我们现在使用的是jQuery 1.6。)

只需删除@

即可
$("input[name='login']").change(function(){
  alert($("input[name='login']:checked").val());
});

请注意,也需要引号。

See the API reference for the attribute equals selector.

答案 1 :(得分:1)

删除@$("input[name=login]")

您可能还想在回调中使用this

$(document).ready(function() {  
    $("input[name=login]").change(function(){
      alert($(this).val());
    });     
});

答案 2 :(得分:0)

只是$("input[name=login]")适合我。从来没有见过那个上下文中使用的@,它应该做什么吗?

答案 3 :(得分:0)

在选择器中丢失@符号。

答案 4 :(得分:0)

从选择器中删除@符号,因为它在jQuery 1.5.2上不存在。

这是你的小提琴updated

答案 5 :(得分:0)

您需要围绕属性值'login'的引号。另外,我认为你不需要@符号:

 $("input[name='login']").change(function(){
      alert($("input[name='login']:checked").val());
   });