0

のような特殊文字を使用する場合。または/ jQuery UI selectmenuのIDで、開いているメニューのオプションの1つをクリックすると、JS構文エラーが発生します。jQuery では特殊文字をエスケープする必要があることはわかっていますが、このコードは lib 自体の奥深くにあるようです。バグを報告する前に何か見逃しているかどうかわからないので、ヒントを得たいと思います!

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

ティア

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 に答える