2016-10-13 8 views
0

jQueryで複数の条件が満たされている場合にのみ実行される操作がある場合、どの手法が採用されているかを理解しようとしています。フィルターが答えかどうかわかりません。jQuery Selectors 2つの条件を満たすテーブル行を削除する

私の例では、ページに複数のテーブルがあります。私は2つの条件を満たすテーブルの行を削除したい。最初の条件は、行が表の最初の行(表要素の最初の子)であってはならないということです。 2番目の条件は、行にスタイルが適用されていてはいけません(スタイル要素は宣言されていません)。私は複雑なセレクタの表記に混乱しています。私は今、単純なセレクターを越えようとしています。

私の例では、使用するテーブルはgvBigTableというラベルが付けられています。私は以下を持っています:

$("#gvBigTable table tbody tr.not('style')").remove(); 
$("#gvBigTable table tbody tr.not(first-child)".remove(); 

これらの条件を組み合わせて、行を削除する必要があります。どんな助けもありがとうございます。ありがとう。

+0

'.remove()'の代わりに 'display:none'を受け入れれば、純粋なCSSの要件をほとんどのセレクタで実現できます。' #gvBigTable table tbody tr:first-child 〜tr:not([スタイル]){display:none; } ' –

答えて

1

:not()は正しく使用されていません。次のようにすることができます。

$("table tbody tr:not(':first-child'):not('[style]')").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
     <tr> 
 
      <td>111</td> 
 
     </tr> 
 
     <tr> 
 
      <td>222</td> 
 
     </tr> 
 
     <tr style=""> 
 
      <td>333</td> 
 
     </tr> 
 
     <tr> 
 
      <td>444</td> 
 
     </tr> 
 
    </tbody> 
 
</table>

UPDATE:David Thomasの提案に応じて、純粋なCSSのソリューションは、次のようなものです。

table tbody tr:first-child ~ tr:not([style]) { 
 
    display: none; 
 
}
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td>111</td> 
 
    </tr> 
 
    <tr> 
 
     <td>222</td> 
 
    </tr> 
 
    <tr style=""> 
 
     <td>333</td> 
 
    </tr> 
 
    <tr> 
 
     <td>444</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

あなたは、あなたが行を削除するためにjQueryを使ってセレクタtable tbody tr:first-child ~ tr:not([style])を使用することができますdisplay: noneを使用しない場合。

+0

ありがとうございます。したがって、私がこのステートメントを読んでいるところでは、セレクターの連鎖はANDステートメントのように機能します。 OR文が必要な場合、このロジックはどのように変化しますか?条件の間にコンマを置いていますか? – captainduh

+1

あり '$("テーブルtbody tr:not( ':first-child')、テーブルtbody tr:not( '[スタイル]') ")'のようにカンマを置きます。 @captainduh – Azim

+0

質問に別の回答を追加する価値はありません。私の質問にコメントしてもらえますか?(http://stackoverflow.com/questions/40028545/jquery-selectors-removing-table-rows -that-meets-two-conditions#comment67335435_40028545)あなたの回答を更新しますか? –

関連する問題