如何通过名称引用元素并带有[]括号?

时间:2011-01-05 19:46:25

标签: javascript jquery

如何在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>

这应该抓住元素,但它不起作用,我相信名称中的[]搞乱它,逃避它似乎也不起作用。我无法弄清楚我做错了什么

4 个答案:

答案 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>