2011-04-05 5 views
1

id가없는 자식 노드가 여러 개인 경우 ParentNode에 일부 콘텐츠를 추가하는 가장 좋은 방법은 무엇일까요?javascript : parentNode에 일부 콘텐츠 추가

<div class="parent_div"> 
     <div class="child_div_1" > I need to add contents inside this div </div> 

     <div class ="child_div_2" onmouseover="addClass(this)"> </div> 
    </div> 

My possible solution : function addClass(obj) { 

     obj.parentNode.firstChild.appendChild(...); 
    } 

하지만 난 누군가가 그 다음 무엇을 첫째 아이의 위치를 ​​변경 의심하는 경우가 있습니다

조건

은? 이 문제를 해결하는 가장 좋은 방법은 무엇일까?

답변

1

사용 JQuery와 :

function addClass(obj) { 

     $(obj.parentNode) 
       .find("ClassName_in_which_you_want_to_append") 
        .append("your_derived_contents"); 
    } 

참고 :발견은() 그것은 단지 당신이 원하는 무엇이든 class_name을을 찾아보십시오. 위치는 중요하지 않습니다. 상위 노드 내부를 검색합니다.

APPEND()이 : 그냥 아이 나는이 당신에게 많은 도움이되기를 바랍니다

로 내용을 추가합니다.

0

잘 모르겠습니다. 콘텐츠를 넣을 요소를 결정해야하는 항목이 있어야하며 해당 항목에 ID가 있어야합니다 (고유 한 요소에는 고유 한 필드가 있어야합니다.)

정의 된 내용 (child_div_1)은 내용을 삽입해야하는 요소에 의미가 있으므로 getElementsByClassName 메서드를 사용하여 올바른 요소를 선택할 수 있습니다.

function addClass(obj) { 
    obj.parentNode.getElementsByClassName('child_div_1')[0].appendChild(/* ... */); 
} 

당신이 예에서 제공 한 클래스 이름 그냥 임의의 경우

, 당신은 블록 요소에 몇 가지 추가 정보를 추가해야 할 것입니다.

+0

이것은 ID를 정의 할 수없는 유일한 엄격한 조건입니다. –

+0

어떤 경우에는 클래스 이름을 사용해야합니다 (예제에 따라 고유해야 함). – EMMERICH

0

참조해야하는 태그의 ID를 추가하십시오. 자바 스크립트 코드를 실행하는 것이 훨씬 쉽고 정확합니다.

관련 문제