Programing

JQuery로 특정 자식 요소가없는 요소를 선택하는 방법

lottogame 2020. 11. 11. 07:51
반응형

JQuery로 특정 자식 요소가없는 요소를 선택하는 방법


특정 자식 요소 없는 모든 요소를 직접 자식 으로 선택하는 JQuery 선택기가 있습니까? 예를 들면 :

<p>
    text in paragraph
</p>
<p>
    <div>text in div</div>
</p>

<p>첫 번째와 같은 s 만 선택하고 싶습니다 ( <div>자녀 제외). 이것이 가능한가?

추가 정보 : 실제로 다음과 같은 표현식으로 하나가없는 <div>모든 항목에 a를 삽입하려고합니다 <p>.

$('p').wrapInner('<div />')

그러나 이것은 <div>두 번째에 추가 할 것 <p>입니다.


시도해 볼 수 있습니다.

$("p:not(:has(>div))")

:has()[docs] 선택기를 [docs]not 함수결합하여 이를 달성 할 수 있습니다.

$("p").not(":has(div)").wrapInner("<div/>");

또는 :not()[docs] 선택기 를 사용하여 단일 선택기를 사용할 수 있습니다 .

$("p:not(:has(div))").wrapInner("<div/>");

둘 중 하나를 바꿔서 사용할 수 있지만 IIRC는 첫 번째가 더 빠릅니다.

jsFiddle에서 실제로 확인하십시오 .

참고 div블록 레벨 요소이며 p아니다. div, p.


텍스트 요소 내부의 구조적 요소는 나에게 매우 불결한 것처럼 보이지만 주장한다면;)

$('p').not(":has(div)").wrapInner("<div/>");

여기에 데모가 있습니다 : http://jsfiddle.net/NTpES/3/


이 시도:

$("p").filter("not(:has(div))").wrapInner("<div/>");

이것은 작동하는 것 같습니다. $('p:not("p div")')

참고 URL : https://stackoverflow.com/questions/7258606/how-to-select-elements-which-do-not-have-a-specific-child-element-with-jquery

반응형