以下のような HTML 要素がある時に
<input type="text" id="hatena.jp" />
$('#hatena.jp')
上記のセレクターではこの要素を取得できない。 id == "hatena.jp"
ではなく id == "hatena" && class.include?('jp')
にマッチする要素を探してしまう。
メタ文字 (!"#$%&'()*+,./:;<=>?@[\]^
{|}~) を含む場合は
\` (two backslashes) でエスケープする必要がある。
$('#hatena\\.jp')
そもそもこうした文字を含まないよう実装すべきとは思うものの、id や class ではなく data attribute あたりだと気づかずに起こったりしそう。
参考
javascript - How do I get jQuery to select elements with a . (period) in their ID? - Stack Overflow