如何在jQuery中选择类[array]?

如何在jQuery中选择类[array]?,jquery,html,jquery-selectors,Jquery,Html,Jquery Selectors,我有这样的元素 <input type="text" name="name-lang[en]" id="name-lang[en]"> Name in English <input type="text" name="name-lang[fr]" id="name-lang[fr]"> Name in France 这不是工作。 这也不是工作 $('#name-lang\[en\]').hide(); 这些是html 5的元素。因为\是字符串中的转义字符,“name

我有这样的元素

<input type="text" name="name-lang[en]" id="name-lang[en]"> Name in English
<input type="text" name="name-lang[fr]" id="name-lang[fr]"> Name in France
这不是工作。 这也不是工作

$('#name-lang\[en\]').hide();
这些是html 5的元素。

因为\是字符串中的转义字符,“name lang\[en\]”等同于“name lang[en]”:

>console.log'name-lang\[en\]; 姓名[英文] 您还必须逃出\并:

如果不想转义字符,可以使用带引号的属性选择器:

$('input[id="name-lang[en]"]')
$('input[name="name-lang[en]"]')
这在以下章节中得到了很好的解释:

要使用任何元字符,如!$%&'*+,./:@[\]^`{124;}~作为名称的文字部分,必须用两个反斜杠转义:\\。例如,id=foo.bar的元素可以使用选择器$foo\\.bar

这会奏效的

$('input[name=name-lang\\[en\\]]')

但无论如何,这是错误的方法:1让元素的ID和NAME属性完全相同;2在没有特殊需要的ID中使用额外的[]为什么不给他们一个类呢?该ID无效:@MatteoTassinari:从你的链接问题来看:HTML 5更为宽松,只是说一个ID必须至少包含一个字符,不能包含任何空格字符。不,我不认为它在HTML 5中无效。你可以用这个html自己测试它。我使用的id无效,但谢谢你,你的答案很好。@vee:在HTML4中无效,但在HTML5中无效。我记得几年前写过那个文档,当时我们遇到了由CMS生成的id,它不在我们的控制范围内,IIRC。嗅探记忆。@ajm:要是有更多的人阅读文档就好了:-:-/:->测试通过了!谢谢@FelixKling
$('input[id="name-lang[en]"]')
$('input[name="name-lang[en]"]')
$('input[name=name-lang\\[en\\]]')