1

各ブロックの最初の P にクラス「無視」を追加し、最後の P にクラス「スタイル」を追加しようとしています。

<div class="tiles_large">
    <span class="spacer">&nbsp;</span>
       <p>image here</p>
    <span class="spacer">&nbsp;</span>
       <h4>headline here</h4>
    <span class="spacer">&nbsp;</span>
       <p>content here</p>
    <span class="spacer">&nbsp;</span>
    </div>

    <div class="tiles_small">
    <span class="spacer">&nbsp;</span>
       <p>image here</p>
    <span class="spacer">&nbsp;</span>
       <h4><div><span>headline here</span></div></h4>
    <span class="spacer">&nbsp;</span>
       <p>content here</p>
    <span class="spacer">&nbsp;</span>
    </div>

これは私の jquery ですが、期待どおりの結果が返されません。

  $(".tiles_large p,.tiles_small p").each(function() {
    $(this).find("p:first").addClass("ignore");
  });

  $(".tiles_large p,.tiles_small p").each(function() {
    $(this).find("p:last").addClass("style");
  });

これが私のフィドルです

4

5 に答える 5

11

これは、あなたの望むことですか?デモ。その場合、.each関数を使用する必要はありません。

$(".tiles_large,.tiles_small").find("p:first").addClass("ignore").end().find("p:last").addClass("style");
于 2013-03-15T22:24:27.987 に答える
1

andp内の要素を検索していますが、 andである必要があります。.tiles_large p.tiles_small p.tiles_large.tiles_small

更新すると、このフィドルが発生します

$(".tiles_large,.tiles_small").each(function () {
    $(this).find("p:first").addClass("ignore");
});

$(".tiles_large,.tiles_small").each(function () {
    $(this).find("p:last").addClass("style");
});
于 2013-03-15T22:25:36.780 に答える
1

完全なメソッドを使用.titles_large p:first,.titles_small p:firstして削除します。.find(...)

于 2013-03-15T22:25:57.433 に答える
0

これは次のように実行できます。

$(".tiles_large, .tiles_small").each(function() {
    $("p:first", this).addClass("ignore");
    $("p:last", this).addClass("style");
});
于 2013-03-15T22:25:00.493 に答える
0

を実行すると、ピックアップさ.eachれるそれぞれに関数が繰り返し適用されます。<p>もっと似たものを探していると思います

$(".tiles_large p:first-of-type,.tiles_small p:first-of-type").addClass("ignore");

これは基本的に@letiagoalvesが投稿したものです。first-of-typejQuery 1.9で追加されたと思います。特にメリットがあるかどうかはわかりませんが...

編集: のパフォーマンスと、サポートしているブラウザとサポートしていないブラウザについて詳しく説明している関連スレッドを見つけました。自分で何か新しいことを学びました:).find("p").eq(0)first-of-type

于 2013-03-15T22:33:14.967 に答える