2017-07-19 21 views
4

IE 11でJQuery 1.6.4を使用スラッシュ文字が原因でセレクタが失敗するのはなぜですか?

私はそのIDにスラッシュを持つ要素を持っています。私のコードで

<span id='a/b'> 
test 
</span> 

、私は

alert($('#a/b').length); 

出力が0私はIDにスラッシュ(/)を持っている場合にのみ発生しているをしています。 document.getElementById( 'a/b')が正しく機能しています。

スラッシュのIDがJQueryで動作しない理由について混乱していますか?

+0

/文字をエスケープすると修正されますか? \/ –

答えて

1

IEでは問題ありません。

/はメタ文字であり、直接使用することはできません。あなたは使用中にそれをエスケープする必要があります。

http://api.jquery.com/category/selectors/

名のリテラル一部として(例えば!"#$%&'()*+,./:;<=>[email protected][\]^``{|}~など)のメタ文字のいずれかを使用するには、それは2つのバックスラッシュを使ってエスケープする必要があります:\。

たとえば、id="foo.bar"の要素は、セレクタ$("#foo\\.bar")を使用できます。

+0

この情報をありがとうございます。他の素早いフォローアップの質問をするかもしれません:これらの文字のすべてがセレクタにありますか?私はここでw3schoolsのいくつかの用例を見ています:https://www.w3schools.com/jquery/jquery_ref_selectors.aspはw3schoolsのガイドが完成しましたか、セレクタについてもっと知りたいですか? – ControlAltDel

関連する問題