使用特殊字符时。或者在id中用于jQuery UI selectmenu我在点击打开菜单中的一个选项时会遇到JS语法错误。 我知道在jQuery中我需要转义特殊字符,但这段代码似乎在lib本身内部。 在报告错误之前我不确定是否遗漏了一些错误,所以我想得到提示!
我正在使用jQueryUI 1.11.1和jquery 1.11.1,但在this fiddle
中尝试了从1.10开始的其他版本<select name=".speed/" id=".speed/" class="sm">
<option>Slower</option>
<option>Slow</option>
<option selected="selected">Medium</option>
<option>Fast</option>
<option>Faster</option>
</select>
错误消息(在chrome控制台中)是:
Uncaught Error: Syntax error, unrecognized expression: .ui-selectmenu-menu, #.speed/-button
jquery-1.10.1.js:1924
TIA
答案 0 :(得分:0)
您可以使用name属性或document.getElementById()
来获取不能用作jQuery选择器的ID:
var elt = $(document.getElementById(".speed/"));
var elt = $("[name='.speed/']");
如果错误是由库本身生成的,那么这实际上并没有多大帮助。但是,您可以尝试使用此替换id中的无效字符作为解决方法:
elt.attr("id", elt.attr("id").replace(".", "dot").replace("/", "slash"));
// ... possibly include other characters we don't like
当然,正确的方法是使用没有点和斜线的id-s。这是一个相当草率的解决方法,但它会起作用。 谨慎使用!