2011-12-19 2 views
1

웹 페이지에서 트리보기와 삭제 버튼이 있습니다. 트리 뷰는 상위 노드 및 하위 노드와 함께로드됩니다. 하위 노드가있는 상위 노드를 선택한 후 삭제를 클릭하면 해당 하위 노드에 확인 상자가 표시됩니다.Haschildnodes()가 작동하지 않습니다.

바로 지금, 자식 노드가없는 부모 노드를 선택하면 다음 메시지가 나타납니다. ""요소에 적어도 하나의 자식이 있습니다. " 이 메시지를 보내야 할 때 :"요소에 아이 "

코드 :..

function check() { 
    var treeViewData = window["<%=nav_tree_items.ClientID%>" + "_Data"]; 
    var selectedNode = document.getElementById(treeViewData.selectedNodeID.value); 

    var hasChilds = selectedNode.hasChildNodes(); 

    if (hasChilds) { 
     alert("The element has at least one child."); 
    } else { 
     alert("The element has no children."); 
    } 

이 도와주세요 은 감사하지 않고 미안 해요 원인이 될 수 있다면 내 설명에 혼란이

+2

요소에 모든 유형 *의 하위 노드 *가 없다는 것을 어떻게 확신합니까? HTML 소스에 새겨진 개행 문자가 있으면 DOM에 텍스트 노드가 포함될 수 있습니다. – Pointy

+0

각 자식에 대해'nodeType'을 조사 할 것입니다. 예상하지 못한 것이있을 것입니다. http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247 – canon

+0

어떤 노드 유형을 어떻게 알 수 있습니까? 그걸 검사 할 방법이 있니? – Ish

답변

3

를 확인하십시오

그러면 마크 업의 공백에서 오는 요소 및 텍스트 노드를 확인하는 childNodes 대신 요소가 있는지 확인합니다.

+0

위의 내용을 시도해보십시오. 그러나 그곳에는 아이들이 없다는 경고가 있습니다. – Ish

관련 문제