jQueryを使用して、divに特定のクラスの子があるかどうかを確認する


114

私は#popup、クラスのいくつかの段落で動的に埋められているdivを持ってい.filled-textます。#popupこれらの段落の1つが含まれているかどうかをjQueryに教えようとしています。

私はこのコードを持っています:

$("#text-field").keydown(function(event) {
    if($('#popup').has('p.filled-text')) {
        console.log("Found");
     }
});

助言がありますか?


1
子供だけ、または子孫(子供、孫、ひ孫)を探していますか?質問のタイトルは現在「子供」を示していますが、回答は任意の子孫について話しているようです。
ヒッピートレイル2016年

当時は特に子供を探していたと思いますが、この質問はほぼ4歳なので、はっきりとは覚えていません。どちらの方法でも、質問と回答は子供と子孫の両方をカバーしています。また、子孫ではなく子供を具体的にカバーする回答もあるので、何を目指しているのかわかりません。
Samsquanch、2016年

ああ、それは検索エンジンを使用して、セレクターに一致する子を持つ要素を探すことについて具体的に質問を探すとき、これはそれが見つけるものだから、他の人が見つけるのを助けるのが不正確である場合、私は質問のタイトルを微調整したでしょう将来の正しい質問。
ヒッピートレイル2016年

回答:




7

jQuery の関数を使用します。

$("#text-field").keydown(function(event) {
    if($('#popup').children('p.filled-text').length > 0) {
        console.log("Found");
     }
});

$.children('').length セレクターに一致する子要素の数を返します。


1
.size().lengthプロパティと同じを返しますが遅いので、置き換える必要があります。
JohannesKlauß、2012年

指摘してくれたJohnnesに感謝します。知らなかった。アンスウェアを更新しました!
クリストファーラミレス

どういたしまして、まだ間違いがあります。そうで.lengthはありません.length()
ヨハネスクラウス

:PIは、ほとんどのjQueryインターフェイスのような関数だと思っていました。矛盾のようなものだと思います。しかし、まあ、answareはもう一度更新しました:PありがとうJohannes。
クリストファーラミレス

この.lengthプロパティはjQueryライブラリの一部ではなく、単なるネイティブJavaScriptです。しかし、はい、それは時々混乱する可能性があります。
JohannesKlauß、2012年

4

シンプルな方法

if ($('#text-field > p.filled-text').length != 0)

2
.size()メソッドは、機能的には.lengthプロパティと同等です。ただし、関数呼び出しのオーバーヘッドがないため、.lengthプロパティが推奨されます。
Hitesh Modha 2014年

1

それが直接の子である場合は、以下のように行うことができます。

$("#text-field").keydown(function(event) {
    if($('#popup>p.filled-text').length !== 0) {
        console.log("Found");
     }
});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.