4

我想将 jquery 选择器用于带有数组表示法的单选按钮组

我有这样的单选按钮

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

这不起作用

我知道我们可以为单选按钮的 name 属性提供 like show 而不是 show[]

然而 IE 存在问题,因此通过使用数组表示法在所有浏览器中都可以使用。

现在我想像我所做的那样给出,这可能还是包含数组表示法的不同语法?

4

3 回答 3

11

您需要转义选择器中的方括号:

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

正如 James Allardice 所提到的,您还可以在属性本身周围加上引号以阻止歧义:

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

更好的是,使用一个类。

于 2012-10-31T15:21:05.460 回答
1

您应该使用以下命令转义括号\\

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

为了提高可读性,您还可以将名称选择器括在引号中:

$('input:radio[name="show[]"]').on('click', function(){
    alert(this.value)
})​;​
于 2012-10-31T15:24:25.740 回答
1

您必须转义[and]选择器内。

现场演示

$("input:radio[name=show\\[\\]]").click(function(){
    alert(this.value)
})​
于 2012-10-31T15:22:20.157 回答