我正在尝试使用$("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());
});
});
答案 0 :(得分:10)
在jQuery 1.3中删除了类似XPath的属性选择器。 (我们现在使用的是jQuery 1.6。)
只需删除@
:
$("input[name='login']").change(function(){
alert($("input[name='login']:checked").val());
});
请注意,也需要引号。
答案 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());
});