3

次のようなマークアップがあります。

<div class='wrapper plugin'>
    //some content
    <div class='child-wrapper plugin'>
      //some more content
      <div>
        <ul>     
          <li><div class='cliky'>clicky!</div></li>
        </ul>
      </div>
    </div>
  <div class='cliky'>clicky!</div>
</div>

div内の divではなく、最初の .clickydivのみを選択できるようにする必要があります。.clicky.plugin > .plugin

ラッパーにも.pluginクラスがあります-直感に反するように見えるかもしれませんので、別の見方をすると次のようになります: I want to get the .clickychildren of a given .plugindiv, but not .plugin .plugin .clicky.

私は次のようなセレクターを試しました:

$('.wrapper').find('.clicky').not('.plugin > .clicky');

しかし、彼らはまだすべての子.clicky要素を選択しました - ネストされた.plugin要素のものを含みます..

.plugin .clicky特定の.plugindivの要素のみを選択し、要素を選択できないようにするにはどうすればよい.plugin .plugin .clickyですか?

4

3 に答える 3

4

これを試して:

$('.wrapper .clicky').filter(function(){
   return $(this).parents('.plugin').length === 1
})
于 2012-10-17T16:56:49.627 に答える
1
$('.wrapper').find('.plugin .clicky')[0];

「見つかった」配列の最初の要素を返す必要があります。結果を jquery obj に組み込む必要がある場合は、再取得するだけです。

var t = $( $('.wrapper').find('.plugin .clicky')[0]);
于 2012-10-17T16:47:29.157 に答える
1

以下を使用できます。

$('.wrapper .cliky').not('.plugin > .plugin .cliky');

また

$('.wrapper .cliky:not(.plugin > .plugin .cliky)');

jQuery 1.9 でテスト済み

于 2016-09-08T18:04:45.783 に答える