Fra*_*een 6 html javascript jquery dom jquery-selectors
我正在研究在id参数中使用方括号的遗留系统.例如:
<select id="mySelect[]">
<option value="1">Yadda</option>
<option value="2">Yadda</option>
<option value="3">Yadda</option>
</select>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用这个id时,jQuery(正在javaScript)非常正确地抱怨
$("#mySelect[]").append(options);
Run Code Online (Sandbox Code Playgroud)
鉴于我无法更改遗留代码,因此我坚持使用现有的id(在任何上下文中可能有效,也可能无效),解决这个问题的好方法是让我选择我的元素?
Sur*_*tta 11
使用元字符时,你必须逃避这些.
$("#mySelect\\[\\]").append(options);
Run Code Online (Sandbox Code Playgroud)
要使用任何元字符(例如!"#$%&'()*+,./:; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\.
如果您不想转义它,可以使用选择器
$( document.getElementById('mySelect[]')
Run Code Online (Sandbox Code Playgroud)
PSL*_*PSL 10
试试这种方式:
$("#mySelect\\[\\]").append(options);
Run Code Online (Sandbox Code Playgroud)
你需要转义[,]因为它们是选择器中使用的保留jquery字符.
看看jquery 文档
要使用任何元字符(例如!"#$%&'()*+,./:; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\.例如,id ="foo.bar"的元素可以使用选择器$("#foo\.bar").
和小提琴这里
加上当然你可以做到这一点$('[id="mySelect[]"]')但是因为它是一个属性选择器性能明智,这将更慢,你失去了使用id选择器的优势,但如果你无法逃避字符,方便.