2013-10-11 2 views
0
<div class='wrap'> 
    <textarea></textarea> 
    <a href=''></a> 
</div> 

<div class='wrap'> 
    <textarea></textarea> 
    <a href=''></a> 
</div> 

<div class='wrap'> 
    <textarea></textarea> 
    <a href=''></a> 
</div> 

동일한 자식 내용을 가진 많은 부모 요소가 있습니다. 이벤트가 자식에게 발생하면 동일한 부모의 다른 자식으로 작업하십시오. 예를 들어다른 자식이 실행될 때 자식 요소 수정

:

<textarea> onkeyup (from parent A) change the background-color of <a> (from parent A) 

방법이 다루는?

+1

그래서 무엇을 시도했는데 실패 했나요? –

답변

1

당신이 찾고있는 중 하나 siblings (이벤트 핸들러 내에서 $(this)에 적용), 또는 closestfind (의 가능한 조합 다른 요소는 귀하의 예제의 경우가 아닌 다른 수준에서 할 수있는 경우).

예 - siblings : Live Copy | Source

$(".wrap textarea").on("keyup", function() { 
    var link = $(this).siblings("a"); 
    link.css("background-color", "green"); 
}); 

예 - closest + find : Live Copy | Source

$(".wrap textarea").on("keyup", function() { 
    var link = $(this).closest(".wrap").find("a"); 
    link.css("background-color", "green"); 
}); 
+0

첫 번째 것은 나를 위해 일하지 않았지만 두 번째는 (가장 가까운 + 찾기) 않습니다. 고마워요! –

+0

@IvorySantos : 둘 다 질문의 마크 업과 함께 작동합니다 (추가 한 실제 예제 참조). 대답에서 말했듯이'형제 '는 같은 레벨의 요소 (이벤트가 발생한 요소의 형제)와 만 작동합니다. 도움이 된 것을 기쁘게 생각합니다. –

+0

@ T.JCrowder 나는 형제들을 다시 사용하려고 한 이유가 궁금합니다. 그러나 나는 그것을 작동하게 만들 수 없다. 나는 틀린 것을 모른다. 어쩌면 내 기존 코드 중 일부가이 함수를 잘못 만들 수 있습니다. 감사합니다. –

관련 문제