0

使用特殊字符时,如 . 或 / 在 id 中用于 jQuery UI 选择菜单单击打开菜单中的选项之一时,我确实收到 JS 语法错误。我知道在 jQuery 中我需要转义特殊字符,但是这段代码似乎在库本身的深处。在我报告错误之前不确定我是否错过了一些东西,所以我想得到提示!

我正在使用带有 jquery 1.11.1 的 jQueryUI 版本 1.11.1 但在这个小提琴中尝试了从 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

4

1 回答 1

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

于 2015-02-06T15:36:51.700 回答