Javascript 选择具有外来id的元素

Javascript 选择具有外来id的元素,javascript,jquery,html,dom,jquery-selectors,Javascript,Jquery,Html,Dom,Jquery Selectors,我正在开发一个在id参数中使用方括号的遗留系统。例如: <select id="mySelect[]"> <option value="1">Yadda</option> <option value="2">Yadda</option> <option value="3">Yadda</option> </select> 鉴于我无法更改遗留代码,因此我只能使用现有id(在任何情况下都可能

我正在开发一个在id参数中使用方括号的遗留系统。例如:

<select id="mySelect[]">
  <option value="1">Yadda</option>
  <option value="2">Yadda</option>
  <option value="3">Yadda</option>
</select>
鉴于我无法更改遗留代码,因此我只能使用现有id(在任何情况下都可能有效,也可能无效),有什么好方法可以解决这个问题并让我选择元素?

尝试以下方法:

$("#mySelect\\[\\]").append(options);
您需要转义
[
]
,因为它们是选择器中使用的保留jquery字符

查看jquery

若要将任何元字符(例如!“$%”和“()*+,./:;?@[]^`{124}~)用作名称的文字部分,必须使用两个反斜杠对其进行转义:\。例如,id为=“foo.bar”的元素可以使用选择器$(“#foo\.bar”)

还有一把小提琴


当然,您也可以这样做。$(“[id=”mySelect[]”]),但由于这是一个属性选择器性能方面的问题,因此速度会变慢,您将失去使用id选择器的优势,但如果您无法转义字符,则会很方便。

使用元字符时,您必须转义这些字符

$("#mySelect\\[\\]").append(options);

若要将任何元字符(例如!“$%”和“()*+,./:;?@[]^`{124;}~)用作名称的文字部分,必须使用两个反斜杠对其进行转义:\

如果您不想逃避它,可以使用选择器

$( document.getElementById('mySelect[]')
试试这个

以下两项都可以正常工作:

console.log($('[id^=mySelect]'));
console.log($('#mySelect\\[\\]'));

不是答案,但您可以始终使用
$(document.getElementById('Anything-you-like'))
并将jQuery保存一些工作。将尝试下面的所有建议。确实读过文档,但还是没读到。我的错+周围都是1。你们太棒了。第一个不是一个好的选择器,因为它是属性选择器,性能方面较慢,并且没有利用id选择器。对于这一点,你可以做
$('[id=“mySelect[]”])
@PSL是的,你是对的,但是使用
[id=“mySelect[]”]]
会有问题,因为它在YUI选择器中不起作用,可能在chrome选择器中也不起作用。他使用的是jquery而不是YUI什么是chrome选择器?那不是chrome选择器。这只是适用于最新浏览器的本机js选择器。
console.log($('[id^=mySelect]'));
console.log($('#mySelect\\[\\]'));