以下のコードを実行しようとしていますが、次のエラーメッセージがスローされます。
エラー:構文エラー、認識されない式:サポートされていない疑似:really-good-at
コード:
<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">
このエラーがスローされる理由を説明できる人はいますか?
JQueryの有効なセレクターのリストはここで確認できます: http://api.jquery.com/category/selectors/
あなたの問題は、単に_:really-good-at
_が有効なセレクターではないということです。
_really-good-at
_がクラス名の場合、.is('.really-good-at')
を使用できます。
さて、エラーは明らかです...really-good-at
は認識されたcss疑似セレクターではありません。任意の疑似セレクターを使用して、それが機能することを期待することはできません。私が日本でスペイン語を話そうとしていて、日本人が私の言っていることを理解することを期待しているようなものです。
非常によく似た経験が、意味をなさない疑似セレクターで私に起こりました。問題は...それは私自身のコードにありました!
これが生まれた方法です:-最初は有効なCSS式でした:コールバック関数内で使用される「td:nth-of-type」、これまでのところ正常です。その関数全体を選択し、選択したテキストに対して大規模な検索/置換を行うことを決定するまで、「type」を「action」に置き換えます。どうして?そのコールバックの引数の1つが、「action」ではなく「type」という誤った名前が付けられていたためです。これが私の疑似セレクターが「nth-of-action」になってしまい、JSエラーがトリガーされ、残りのコードの処理が停止した方法です。大規模な置換は危険であることが経験からわかっている限り、「アクション」のインスタンスを探すためにコードを確認しましたが、疑似セレクターのn番目のタイプが変更されていることはわかりませんでした...