使用jQuery UI selectmenu的特殊字符和id

时间:2015-02-06 13:16:04

标签: jquery-ui jquery-ui-selectmenu

使用特殊字符时。或者在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

1 个答案:

答案 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。这是一个相当草率的解决方法,但它会起作用。 谨慎使用!