私は、次の作業を取得するように見えるカント: jQuery - not()内の複数セレクタ:
$('input:not([type=radio][type=checkbox])').live('click', function() {
alert("You haven't clicked a radio or checkbox!");
});
は、誰もがこの1に私を助けることができ、いくつかの異なる構文のを試してみました。
乾杯
チャーリー
私は、次の作業を取得するように見えるカント: jQuery - not()内の複数セレクタ:
$('input:not([type=radio][type=checkbox])').live('click', function() {
alert("You haven't clicked a radio or checkbox!");
});
は、誰もがこの1に私を助けることができ、いくつかの異なる構文のを試してみました。
乾杯
チャーリー
あなたはmultiple attribute selectorでmultiple selectorを混乱しています。あなたは書く必要があります:
$("input:not([type=radio], [type=checkbox])");
複数の属性セレクタ[type=radio][type=checkbox]
は、この宇宙で起こることができないそのtype
属性両方radio
とcheckbox
に等しい要素を、一致しました。
パーフェクト〕おかげフレデリック。まるでそれらを間違っているように見える。ブックマーク済み:) –
私は、宇宙全体を話そうとするのではなく、「htmlのこの実装では起こり得ない」と言うのがより真実だろうと思います。それは大きな宇宙ですが、ある種のエイリアンレースはhtmlの実装を持つことができます。これは例えば、与えられた属性の値のコンマ区切りリストを許可します。 (*多くの宇宙学者は、宇宙は実際に無限であると信じていますが、あなたが考えることができるHTMLの実装はどこかに存在します) –
not()
内の構文は、通常のセレクタ構文と同じです。したがって、どちらのものでもないものと一致させる場合は、両方で一致するセレクタを使用します(本質的に否定しているのでセレクタ)。あなたはどうやってそれをしますか?あなたはそうと、カンマで、一度CSS内で複数のセレクタにスタイルを適用するのと同じ方法:
$('input:not([type=radio],[type=checkbox])')
ます。また、このような項目を除外することができ、すべての入力ではない[type=radio]
なく[type=checkbox]
これはjQueryの ':not()'にのみ適用されます。 CSS3の ':not()'は[シンプルセレクタ](http://www.w3.org/TR/css3-selectors/#simple-selectors-dfn)以外のものを受け入れることはできません。そのため、単純なセレクタ以外のものをjQueryの ':not()'に渡すと、現代のブラウザは 'querySelectorAll()'でセレクタを解析できないため、パフォーマンスヒットが発生する可能性があります(微視的な場合)。 – BoltClock
はい、その説明をいただきありがとうございます。私のCSSの比較では、CSS3セレクターがそのように動作しないことが明確にはなりませんでした。 – darkliquid
を選択する必要があります:
$('input').not('[type=radio], [type=checkbox]').live('click', function() {
alert("You haven't clicked a radio or checkbox!");
});
の可能重複[jQueryの - 複数:いないセレクタ(http://stackoverflow.com/questions/7144976/jquery-multiple-not-selector) –