jQuery选择器用于在名称属性中使用方括号的输入

我试图选择名称属性中有方括号的元素:

<input type="text" name="inputName[]" value="someValue"> 

我试过这个(不起作用):

 $('input[inputName[]=someValue]') 

这也不是:

 $('input[inputName[]=someValue]') 

或这个:

 $('input["inputName[]"=someValue]') 

编辑:正如你已经指出, $('input[inputName=someValue]')将永远不会工作。 我想要做的是: $('input[name=inputName][value=someValue]') 。 (但在名称属性中使用[] )。

根据jQuery文档 ,试试这个:

 $('input[inputName\\[\\]=someValue]') 

[编辑]但是,我不知道这是你的选择正确的语法。 你可能想要:

 $('input[name="inputName[]"][value="someValue"]') 

您可以使用反斜杠在您的jQuery选择器中引用“有趣”的字符:

 $('#input\\[23\\]') 

对于属性值,可以使用引号:

 $('input[name="weirdName[23]"]') 

现在,我被你的例子弄糊涂了。 你的HTML是什么样的? 在哪里显示字符串“inputName”,特别是?

编辑 fixed bogosity; 谢谢@Dancrumb

属性选择器语法是[name=value] ,其中name是属性名称, value是属性值。

因此,如果要选择属性nameinputName[]所有input元素:

 $('input[name="inputName[]"]') 

如果你想检查两个属性(这里: namevalue ):

 $('input[name="inputName[]"][value=someValue]') 

如果选择器包含在一个变量中,下面的代码可能会有帮助:

 selector_name = $this.attr('name'); //selector_name = users[0][first:name] escaped_selector_name = selector_name.replace(/(:|\.|\[|\])/g,'\\$1'); //escaped_selector_name = users\\[0\\]\\[first\\:name\\] 

在这种情况下,我们用双反斜线前缀所有特殊字符。