2011-05-06 21 views
4

我試圖獲得與$("input[@name=login]")單選按鈕的值,但得到「未捕獲的語法錯誤,無法識別的表達式」。單選按鈕的jQuery值:「未捕獲的語法錯誤,無法識別的表達式」

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()); 
    });  
}); 

回答

10

在jQuery 1.3中刪除了XPath-like屬性選擇器。 (我們現在上的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.6? – 2011-05-06 14:01:32

+0

行情不是必需的。 – 2011-05-06 14:02:13

+0

@Matt自永遠以來,AFAIK。通常你的代碼會在沒有它們的情況下工作,但它們在技術上是強制性的。 – lonesomeday 2011-05-06 14:02:28

1

取出@$("input[name=login]")

你可能也想在回調使用this

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

只是$("input[name=login]")爲我工作。從來沒有見過在此背景下使用過的@,它應該做些什麼?

0

丟失選擇器中的@符號。

0

刪除@從你選擇的象徵,因爲它不介紹jQuery 1.5.2存在。

這是你的小提琴updated

0

您需要引用屬性值'login'。另外,我不認爲你需要@符號:

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