我试图执行下面的代码,但它会抛出以下错误消息:
错误:语法错误,无法识别的表达式:unsupported pseudo: 确实好-在
代码:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
/* Implement a Cesar crypto decrypt for the code.
* [Code ASCII] + n => Decrypted ASCII.
* where n = char pos in cryptedCode string (R=1) */
if ($('.js.php.mysql.html.oop').is(':really-good-at')) {
var cryptedCode = 'RFLLDN';
var decryptedCode = '';
console.log('Enter this code in the form: ' + decryptedCode);
//Open website url
var url = 'aHR0cDovL2JpdC5seS8xN21NRzk4';
window.open(window.atob(url));
}
</script>
<input type="text" class="js.php.mysql.html.oop">
任何可以解释为什么会抛出此错误的人?
答案 0 :(得分:13)
您可以在此处查看jQuery的有效选择器列表:http://api.jquery.com/category/selectors/
您的问题很简单,:really-good-at
不是有效的选择器。
如果really-good-at
是班级名称,您可以使用.is('.really-good-at')
答案 1 :(得分:2)
嗯,错误很明显...... really-good-at
不是公认的css伪选择器。你不能只使用任意伪选择器并期望它工作。就像我想在日本说西班牙语,期待日本人明白我在说什么
答案 2 :(得分:0)
一个非常类似的经历刚刚发生在我身上,伪选择器没有意义。问题是......这是我自己的代码!
这就是它诞生的方式: - 最初它是一个有效的CSS表达式: &#34; TD:第n的式&#34; 在回调函数中使用,到目前为止都很正常。 直到我决定选择整个功能,并对所选文本进行大量查找/替换:替换&#34;键入&#34;用&#34;动作&#34;。 为什么?因为该回调的一个参数被错误地命名为&#34;键入&#34;而不是&#34;动作&#34;。这就是我的伪选择器最终结果为&#34; nth-of-action&#34;因此触发了JS错误,而JS错误反过来又停止了对其余代码的处理。 根据经验我知道大量替换是危险的,我仍然查看我的代码以查找&#34; action&#34;的实例,但我没有看到伪选择器nth-of-type有被改变了......