如何在jquery BY NAME中引用其中包含[]的元素。
<select name="values[]" multiple="true">
<option value="1">1</option>
<option value="2">2</option>
<option value="2">2</option>
</select>
<script type="text/javascript">
$('[name=values[]]');
</script>
这应该抓住元素,但它不起作用,我相信名称中的[]搞乱它,逃避它似乎也不起作用。我无法弄清楚我做错了什么
答案 0 :(得分:9)
一种方法是在选择器中引用名称:
$('[name="values[]"]')
或者:
$("[name='values[]']")
答案 1 :(得分:5)
相关:How do I get jQuery to select elements with a . (period) in their ID?
答案: 使用双反斜杠来转义括号。
$('[name="values[]"]');
编辑:为了有效性修改了示例。显然,Sizzle并没有很好地处理未加引号的版本。
答案 2 :(得分:0)
你使用双反斜杠了吗?只有一个人不会这样做,因为JavaScript会在jQuery看到它之前将\[
变成[
。
答案 3 :(得分:0)
它在Chrome中似乎对我有用。
如果您运行此代码并查看控制台,则应该看到元素
<select name="values[]" multiple="true">
<option value="1">1</option>
<option value="2">2</option>
<option value="2">2</option>
</select>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
// all the inputs with the name value
console.log($('[name=values[]]'));
// The first input with the name value
console.log($('[name=values[]]')[0]);
</script>