Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';当元素的类或id包含点时,不显示该元素_Javascript_Jquery - Fatal编程技术网

Javascript Can';当元素的类或id包含点时,不显示该元素

Javascript Can';当元素的类或id包含点时,不显示该元素,javascript,jquery,Javascript,Jquery,我必须有一个包含点的类,但是jQuery不起作用。我该怎么办? 例如: 文本 $(文档).ready(函数(){ $('.dfv.png').show(); }) p.S.ID也不起作用。你需要逃离它们。从 如果您希望使用任何元字符 (例如!“\$%&'()*+,./:;?@[\]^`{124}~)作为 名称的文字部分,必须转义该字符 有两个反斜杠:\\。例如,如果您有 id为=“foo.bar”的元素, 您可以使用选择器$(“#foo\\\.bar”)。 您需要退出: $(document

我必须有一个包含点的类,但是jQuery不起作用。我该怎么办? 例如:


文本
$(文档).ready(函数(){
$('.dfv.png').show();
})

p.S.ID也不起作用。

你需要逃离它们。从

如果您希望使用任何元字符
(例如!“\$%&'()*+,./:;?@[\]^`{124}~)作为
名称的文字部分,必须转义该字符
有两个反斜杠:\\。例如,如果您有
id为=“foo.bar”的元素,
您可以使用选择器$(“#foo\\\.bar”)。

您需要退出

$(document).ready(function() {
    $('.dfv\\.png').show();
})

您需要转义类名中的点

试试这个:

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

工作示例:

一个
字符表示类选择器的开始,因此需要对其进行转义

CSS转义字符,
\
在JS中也是转义字符,因此您也需要转义它

$('.dfv\\.png').show();
您可以这样做:

$(document).ready(function() {
   $('.dfv\\.png').show();
});

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

$('.dfv\\.png').show();
但是,更通用的解决方案是自动转义特殊字符。 您可以使用转义所有特殊字符,代码很短:

//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();
});
希望这有帮助。
干杯

在我的用例中,直到运行时才知道这个类

简单正则表达式替换工作正常

var selectorEscaped = 'bo.selecta.shamone'.replace(/\./g, '\\.');
要测试:

$('body').append('<div class="bo.selecta.shamone"/>');
var selectorEscaped = 'bo.selecta.shamone'.replace(/\./g, '\\.');
$('.' + selectorEscaped )
$('body')。追加(“”);
var selectorEscaped='bo.selecta.shamone'。替换(/\./g,'\\.');
$('..+selectorEscaped)

类已定义,我无法逃避。在jQuery中是否可以像在php str_replace中一样使用smth?然后我将点替换为\。类已给出。然后我将其放入数组中,如
info['id']
并且它等于
dfv.png
。如果有,我需要用jQuery函数将其设置为
dfv\\.png
。@如果是这样,那么在输出js时用php(或任何你的服务器)更改它。否则就不要在你的应用程序中使用
IDs@hey
var selectorEscaped='bo.selecta.shamone'。替换(/\./g,“\\.”;
类名称中包含点是无效的。最好先编写有效的HTML/CSS。Thaks很多!你也是。干杯,来自玻利维亚拉巴斯
var selectorEscaped = 'bo.selecta.shamone'.replace(/\./g, '\\.');
$('body').append('<div class="bo.selecta.shamone"/>');
var selectorEscaped = 'bo.selecta.shamone'.replace(/\./g, '\\.');
$('.' + selectorEscaped )