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
是属性值。
因此,如果要选择属性name
为inputName[]
所有input
元素:
$('input[name="inputName[]"]')
如果你想检查两个属性(这里: name
和value
):
$('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\\]
在这种情况下,我们用双反斜线前缀所有特殊字符。