我必须具有包含点的类,但是jQuery无法正常工作。我该怎么办?
示例:http://jsfiddle.net/9KYmx/

<div style="display: none" class="dfv.png">
    text
</div>
$(document).ready(function() {
    $('.dfv.png').show();
})

附言身份证也无效。

最佳答案

如果选择器是常数,则必须用反斜杠(\)转义点,因此应执行以下操作:

$('.dfv\\.png').show();

但是,更通用的解决方案是自动转义特殊字符。
您可以使用Ian McKellar's escape plugin转义所有特殊字符,代码简短:
//Just copy and paste this
(function() {
escape_re = /[#;&,\.\+\*~':"!\^\$\[\]\(\)=>|\/\\]/;
jQuery.escape = function jQuery$escape(s) {
  var left = s.split(escape_re, 1)[0];
  if (left == s) return s;
  return left + '\\' +
    s.substr(left.length, 1) +
    jQuery.escape(s.substr(left.length+1));
}
})();

所以你也是:
$(document).ready(function() {
    var your_selector = "dfv.png"; //your_selector can be variable
    $("."+$.escape(your_selector)).show();
});

希望这可以帮助。
干杯

关于javascript - 当元素的类或ID包含点时无法显示该元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5861122/

10-11 13:19