事实证明,按照fancybox库的文档,我发现要通过类定义其元素的行为,必须遵循如下语法:
<a href="http://www.dominio-ejemplo.mx/pagina" class="fancybox.iframe">
<!-- Código HTML -->
</a>
我想通过 jQuery 将“ x ”行为添加到这些元素中,但我发现自己仍在逃避“。” (dot) 与反斜杠 () 不取元素。
我留下以下片段:
$(function(){
$('button').on('click', function(){
/* No funciona */
$('.fancybox\.image').remove();
});
});
.fancybox\.iframe {
color: white;
background-color: red;
}
.fancybox\.image {
color: white;
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
<a href="http://www.dominio-ejemplo.mx/pagina" class="fancybox.iframe">Estilo iframe</a>
</li>
<li>
<a href="http://www.dominio-ejemplo.mx/pagina" class="fancybox.image">Estilo imagen</a>
</li>
</ul>
<button>Borrar: fancybox.iframe</button>
问题在这里(在斜线中):
将其更改为
.fancybox\\.image
双斜杠。其余代码都很好,发生的情况是
'\.'
JavaScript 中的字符串被转换为只是'.'
因为\
它是转义字符,而您想要的是选择器接收\.
.只需将属性的值括在单引号或双引号中,具体取决于您用于定义选择器
class
的那些。那是:原来Jquery在3.0版本中增加了一个新的方法,叫做escapeSelector。它允许的是能够使用典型的 css 选择运算符的字符来选择元素。
它的用途是这样的
您在这里有更多信息https://jquery.com/upgrade-guide/3.0/#selector