2012-10-31 9 views
2

欲使用數組方式對單選按鈕組使用jquery選擇爲單選按鈕組jQuery選擇其中name屬性值具有數組符號

我有這樣

<input name="show[]" type="radio" value="1" /> Show<br> 
<input name="show[]" type="radio" value="0" /> Hide<br> 

我想單選按鈕使用jquery選擇用於上述和嘗試了以下

$("input:radio[name=show[]]").click(function(){ 
    alert(this.value) 
}) 

未工作

我知道我們可以給像show而不是show []作爲單選按鈕的名稱屬性

但IE仍然有問題,所以在所有瀏覽器中都使用數組符號。

現在我想給我喜歡的事情,這是可能的還是它是一種不同的語法,包括數組符號?

+0

可能[什麼是t他不同的方式之間的區別jQuery選擇器中的方括號](http://stackoverflow.com/questions/18573178/what-is-the-difference-between-these-different-ways-to-escape-square-brackets -in) – Sergio

回答

10

你需要躲避方括號中選擇:

$("input:radio[name=show\\[\\]]").click(function(){ 
    alert(this.value) 
}) 

如前所述由詹姆斯·阿勒代斯,你也可以把引號的屬性本身停止歧義:

$("input:radio[name='show[]']").click(function(){ 
    alert(this.value) 
}) 

更好但是,使用一個班級。

+3

+1。或者,您可以引用選擇器的屬性值部分。 –

+0

@JamesAllardice非常好的一點,謝謝 –

1

您必須在選擇器內跳過[]

Live Demo

$("input:radio[name=show\\[\\]]").click(function(){ 
    alert(this.value) 
})​ 
1

你應該逃脫支架與\\

$('input:radio[name=show\\[\\]]').on('click', function(){ 
    alert(this.value) 
})​;​ 

爲了提高可讀性,你也可以在引號包住名稱選擇:

$('input:radio[name="show[]"]').on('click', function(){ 
    alert(this.value) 
})​;​ 
+0

'on('click','prefer to'click('?你能源? –

+0

對不起,間隔......我在想'live()' – doublesharp

+0

實際上, 'on('click','_does_有它的好處;-) –

相關問題