17

Stack Overflow で多くの関連するものを見つけましたが、私の場合には当てはまりません。

要素に別の要素が含まれているかどうかを確認し、含まれている場合は何かを追加する必要があります。

$(".bt_repondre").click(function(){
    comment = $(this).parent().parent().parent();
    //I want to check if comment contains a .comment_full element, if no, append.
    comment.append('add');
});

あなたが私を助けてくれることを願っています、私はたくさんのことを試しました...

4

7 に答える 7

38

あなたは使用することができ.hasます.length

if (comment.has('.comment_full').length) {
    // It has that element
}
  • .findすべての子孫を反復処理しますが.has、セレクターに一致する子孫が見つかると停止します。実行速度が速くなる場合があります。

  • .length結果の要素セットの長さがゼロでないかどうかを確認するだけです。

于 2012-11-01T18:01:17.170 に答える
20

.find()次のように、要素を返すかどうかを使用して確認するだけです。

$(".bt_repondre").click(function(){
    comment = $(this).parent().parent().parent();
    if (! comment.find('.comment_full').length) {
       comment.append('add');
    }
});
于 2012-11-01T18:00:49.533 に答える
3

これらの答えのほとんどは素晴らしいですが、 !を返す (1.4 で追加された) という新しいメソッドがあります。contains(container,contained)Booleanこれは基本的に Blender のコード スニペットと同じことを行いますが、入力と実行の両方でおそらくより高速です。

コードに実装すると、次のようになります。

$(".bt_repondre").click(function(){
    comment = $(this).parent().parent().parent();
    if(!$.contains(comment, $('.comment_full')))//same as if(!jQuery.contains(...
    {
        comment.append('add');
    }
});
于 2014-02-16T20:30:44.960 に答える
2

テーブル内の myTable の id を持つ任意の tr 要素を探している場合は、次のコードを使用できます。

if($('#productsTableBody tr').length)
{
//...
}

このようにして、テーブルに行が含まれているかどうかを確認できます。

于 2016-10-13T10:51:26.413 に答える
0

これを試して

 comment.has('a.comment_full').length == 0
于 2012-11-01T18:02:01.007 に答える