2017-06-11 4 views

答えて

3

.notselector group含むセレクタを受け付けます。だから、:代わりに

$('a').not('[href="#"], [href="#navShow"], [href="#navHide"], [href="#about"]').click(function() { 
}); 

それとも:notと(CSS docsjQuery docs):

$('a:not([href="#"]):not([href="#navShow"]):not([href="#navHide"]):not([href="#about"])').click(function() { 
}); 

.notとは異なり、:notは、単純なセレクタをセレクタ群を受け入れることができない。しかし、我々は全体の内でそれらをチェーンすることができます。セレクタ)

と書いてありますが、a要素にクラスを追加することをお勧めしますあなたはこのために選択したくないか、そのクラスを使用するか(notの有無にかかわらず)、hrefを個別にチェックするのではなく、それを使用します。

0

CSSの:not疑似クラスセレクタ属性リスト内で複数のコンマ区切り属性をチェーンすることもできます。下記のfont-weightのリンクのリスト:デモのための太字。

これはデスクトップ上のChromeとSafariでは実行されますが、現行の標準の一部であるか、今後の予定か、非標準であるかどうかはわかりません。例えば、私はa comment on SOに記載されていますが、私はMDNで文書化された動作を見つけることができませんでした。

$('a:not([href="#b"], [href="#c"], [href="#e"])').each(function(idx, val) { 
 
    $(val).css('font-weight', 'bold'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li><a href="#a">link a</a></li> 
 
    <li><a href="#b">link b</a></li> 
 
    <li><a href="#c">link c</a></li> 
 
    <li><a href="#d">link d</a></li> 
 
    <li><a href="#e">link e</a></li> 
 
    <li><a href="#f">link f</a></li> 
 
</ul>

関連する問題