나는 ID를 얻기 위해 parentElement
을 많이 통과해야하는 기능이 있습니다. 대신에 if(element.parentElement.parentElement.parentElement.id == "target"){ doThis() }
작성하는 방법은 자바 스크립트에서 "이 id"doThis() "가있는 상위 요소가있는 경우에만 말하는 것입니까? 이 모든 parentElements를 거치지 않고이 ID를 가진 현재 요소의 부모 요소가 있다면 doThis()를 호출하는 방법이 있을까요?.parentElement를 대체 하시겠습니까?
편집
많은 말했다 내가해야 단지 getElementById
어쩌면 그 해결책이지만, 내가 뭘하는지보다 조금 볼 수 있도록 내가 당신에게 내 코드의 예를 보여 드리겠습니다 :
동일한 기능을 가진 div가 많이 있습니다. clicked()라고 부를 수 있습니다.
function clicked(element){
if(element.parentElement.parentElement.parentElement.id == 'container'){
doThis();
}
}
:
<div id = "container">
<div id = "top">
<div id = "left">
<div onclick = "clicked(this)">Content</div>
<div onclick = "clicked(this)">Content2</div>
...
</div>
</div>
</div>
내 클릭 기능은 다음과 같습니다
<div onclick = "clicked(this)">Content</div>
이 된 div는 몇 가지 다른 div에 포함되어 말할 수 있습니다 :
그래서 나는 다음과 같이 20 명 div의가 있다고
로 전체를 통합 할 수는'ID's는 ** 독특한 **해야합니다. 그래서 당신은'document.getElementById()'를 사용할 수 있습니다. –
부모 요소를 찾을 때까지 'while()'루프를 사용하기 만합니다. 그러나'id'가 유일하기 때문에, 왜 직접 요소를 선택하지 않고 * 다음 *에서 조건부 검사를 수행합니까? –
@PM 77-1 내 ID는 모두 고유합니다. 'document.getElementById'를 사용하고 싶지 않은 이유는 각 id에 대해 코드를 반복하고 싶지 않기 때문입니다. 내가 많이. –