2016-08-15 8 views
0

基本的に以下のようなメニューコントロールのHTMLマークアップがあります。あなたが注意するように、各<div class="row">のマークアップが繰り返されます。この繰り返しコードは、各メニューコントロールセットで同じです。jQuery .notメソッドが期待通りに機能しない

<div id="menuModal"> 
    <div class="row"> 
     <div class="col-xs-6"> 
      <i>Control Icon</i> 
      <span>Control Label</span> 
     </div> 
     <div class="col-xs-2"> 
      <i>Control Icon</i> 
      <span>Control Label</span> 
     </div> 
     <div class="col-xs-2"> 
      <i>Control Icon</i> 
      <span>Control Label</span>    
     </div> 
     <div class="col-xs-2"> 
      <i>Control Icon</i> 
      <span>Control Label</span>    
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-xs-6"> 
      <i>Control Icon</i> 
      <span>Control Label</span> 
     </div> 
     <div class="col-xs-2"> 
      <i>Control Icon</i> 
      <span>Control Label</span> 
     </div> 
     <div class="col-xs-2"> 
      <i>Control Icon</i> 
      <span>Control Label</span>    
     </div> 
     <div class="col-xs-2"> 
      <i>Control Icon</i> 
      <span>Control Label</span>    
     </div> 
    </div> 
</div> 

私は、次のjQueryのセレクタおよび方法でこれらのラベルの最初を除き、各div class="col-xs-6">制御ラベルの色を設定していますが:

$("#menuModal").find("div.row > div.col-xs-6 > span").not("div.row:eq(0) > div.col-xs-6 > span").css("color", "#669900"); 

jQueryのステートメントは、上記のラベルの色を設定しますEVERY div class="col-xs-6"ラベル(最初のラベルを含む)私は.notメソッドセレクタが動作しない理由を理解できません。

アイデア?

$("#menuModal").find("div.row:not(:first) > div.col-xs-6 > span") 
+0

これは実際には奇妙です。おそらくjQueryでは 'filter'と' not'に*単純なセレクタ*しか許されない可能性があります。 –

答えて

1

を叩いています代わりにネイティブCSSセレクタを使用してください:

$("#menuModal div.row ~ div.row > div.col-xs-6 > span") 

最初の子ではない場合でも最初のdiv.rowはスキップしてください。

+0

うん、私は知っている。私はこれが短いと思った。私は今日自分のコードで正確に同じ変更を行った;) –

1

あなたは、単にこのように使用することができます:

$("#menuModal").find("div.row:not(:first) > div.col-xs-6 > span") 
    .css("color", "#669900"); 
0
$("#menuModal").find("div.row > div.col-xs-6 > span").slice(1).css("color", "#669900"); 
1

あなたがすることができ、私はあなたがこのような最初の行を除外することができる。この上で私の頭...

+0

興味深い 'div.row〜div.row'はどういう意味ですか? –

+0

それは[一般的なsisblingコンビネータ]です(http://stackoverflow.com/q/10782054/87015) –

+0

本当にクールな解決策 –

関連する問題