jQuery를 사용하여 div에 특정 클래스의 자식이 있는지 확인


114

#popup클래스와 함께 여러 단락으로 동적으로 채워진 div 가 .filled-text있습니다. #popup이 단락 중 하나가 있는지 jQuery가 알려 주려고 합니다.

이 코드가 있습니다.

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

어떤 제안?


1
당신은 아이 만을 찾고 있습니까, 아니면 후손 (자녀, 손자, 증손자 등) 을 찾고 있습니까? 질문 제목은 현재 "자식"이지만 대답은 임의의 후손에 대해 이야기하는 것처럼 보입니다.
hippietrail

그 당시 나는 특별히 아이를 찾고 있었다고 믿었지만이 질문은 거의 4 살이 되었기 때문에 확실히 기억하기 어렵습니다. 어느 쪽이든 질문과 대답은 자녀와 후손을 모두 다루고 있으며, 특히 자녀가 아닌 자녀를 다루는 답변도 있으므로 무엇을 얻으려고하는지 잘 모르겠습니다.
Samsquanch

오, 검색 엔진을 사용하여 선택자와 일치하는 자식이있는 요소를 찾는 것에 관한 질문을 구체적으로 찾을 때 이것이 찾은 것이므로 다른 사람들이 찾을 수 있도록 정확하지 않은 경우 질문 제목을 수정했을 것입니다. 미래의 올바른 질문입니다.
hippietrail

답변:




7

jQuery 의 자식 기능을 사용하십시오 .

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

$.children('').length 선택자와 일치하는 하위 요소의 수를 반환합니다.


1
.size().length속성 과 동일 하지만 속도가 느리므로이를 교체해야합니다.
Johannes Klauß

지적 해 주신 Johnnes에게 감사드립니다! 나는 그것을 몰랐다. Answare가 업데이트되었습니다!
Christopher Ramírez

천만에요,하지만 여전히 실수가 있습니다. 그것은 .length아닙니다.length()
Johannes Klauß

: PI는 대부분의 jQuery 인터페이스와 같은 기능이라고 생각했습니다. 제 생각에는 일종의 불일치입니다. 하지만 answare는 다시 한 번 업데이트되었습니다. P 감사합니다 Johannes.
Christopher Ramírez

.length속성은 jQuery 라이브러리의 일부가 아니라 네이티브 자바 스크립트 일뿐입니다. 그러나 예, 때로는 혼란 스러울 수 있습니다.
Johannes Klauß

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.