4

メソッドを使用して Web ページのリンクを取得しようとしてquerySelectorAll()いますが、「javascript:」で始まるリンクを無視するか、「itpc://」などの別のプロトコルを使用したい

これらを「not()」疑似セレクターに含める方法はありますか?

document.querySelectorAll("a:not([href^=javascript]):not([href^=itpc])"); //works
document.querySelectorAll("a:not([href^=javascript:]):not([href^=itpc://])"); //doesn't work

最初の方法は現在のページで問題なく機能しますが、それを使用するすべてのページで機能するという保証はないので、そのコロンを検出できるようにしたいと考えています。

4

1 に答える 1

11

specに基づいて、対象とする値を文字列に変換すると機能します。

document.querySelectorAll("a:not([href^='javascript:']):not([href^='itpc://'])");

現在のバージョンの問題は、引用符を使用しない限り、値はidentifierに課せられた制限に準拠する必要がありますが、準拠していないことです。

于 2012-03-18T23:45:53.920 に答える