[javascript] $ (this) 선택기의 자식을 얻는 방법은 무엇입니까?

다음과 비슷한 레이아웃이 있습니다.

<div id="..."><img src="..."></div>

jQuery 선택기를 사용하여 클릭시 img내부의 자식을 선택하고 싶습니다 div.

를 얻으려면 div이 선택기가 있습니다.

$(this)

img선택기를 사용 하여 어린이 를 어떻게 구할 수 있습니까?



답변

jQuery 생성자는 context선택 컨텍스트를 재정의하는 데 사용할 수 있는 두 번째 매개 변수를 허용합니다 .

jQuery("img", this);

다음과 같이 사용하는 .find()것과 같습니다.

jQuery(this).find("img");

당신이 원하는 imgs 인 경우 에만 클릭 된 요소의 직계 후손, 당신은 또한 사용할 수 있습니다 .children():

jQuery(this).children("img");


답변

당신은 또한 사용할 수 있습니다

$(this).find('img');

이는의 img자손 인 모든을 반환합니다 .div


답변

img정확히 한 수준 아래로 첫 번째를 받아야하는 경우

$(this).children("img:first")


답변

DIV 태그 바로 뒤에 IMG 태그가 오는 경우 다음을 사용할 수도 있습니다.

$(this).next();


답변

직접 아이들은

$('> .child-class', this)


답변

아래와 같이 부모 div의 모든 img 요소를 찾을 수 있습니다

$(this).find('img') or $(this).children('img')

특정 img 요소를 원한다면 다음과 같이 쓸 수 있습니다

$(this).children('img:nth(n)')
// where n is the child place in parent list start from 0 onwards

div에는 하나의 img 요소 만 포함되어 있습니다. 이 아래에 맞습니다

 $(this).find("img").attr("alt")
                  OR
  $(this).children("img").attr("alt")

그러나 div에 아래와 같은 img 요소가 더 있으면

<div class="mydiv">
    <img src="test.png" alt="3">
    <img src="test.png" alt="4">
</div>

그런 다음 상위 코드를 사용하여 두 번째 img 요소의 대체 값을 찾을 수 없습니다. 그래서 당신은 이것을 시도 할 수 있습니다 :

 $(this).find("img:last-child").attr("alt")
                   OR
 $(this).children("img:last-child").attr("alt")

이 예제는 부모 개체 내에서 실제 개체를 찾는 방법에 대한 일반적인 아이디어를 보여줍니다. 클래스를 사용하여 자식 개체를 구별 할 수 있습니다. 쉽고 재미 있습니다. 즉

<div class="mydiv">
    <img class='first' src="test.png" alt="3">
    <img class='second' src="test.png" alt="4">
</div>

아래와 같이 할 수 있습니다 :

 $(this).find(".first").attr("alt")

보다 구체적으로 :

 $(this).find("img.first").attr("alt")

위 코드와 같이 find 또는 children을 사용할 수 있습니다. 더 방문을 위해 아이들은 http://api.jquery.com/children/ 하고 찾기 http://api.jquery.com/find/을 . 예를 참조하십시오 http://jsfiddle.net/lalitjs/Nx8a6/


답변

jQuery에서 자식을 참조하는 방법 다음 jQuery에 요약했습니다.

$(this).find("img"); // any img tag child or grandchild etc...   
$(this).children("img"); //any img tag child that is direct descendant 
$(this).find("img:first") //any img tag first child or first grandchild etc...
$(this).children("img:first") //the first img tag  child that is direct descendant 
$(this).children("img:nth-child(1)") //the img is first direct descendant child
$(this).next(); //the img is first direct descendant child