语法错误,无法识别的表达式:unsupported pseudo

时间:2014-06-16 07:11:54

标签: jquery syntax selector

我试图执行下面的代码,但它会抛出以下错误消息:

  

错误:语法错误,无法识别的表达式: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">

任何可以解释为什么会抛出此错误的人?

3 个答案:

答案 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有被改变了......