2011-12-16 4 views
0

부모 노드와 하위 노드가 있습니다. 부모가> = 1 자식 노드를 포함하고 있다면 "helllooo"로 확인해야합니다. 그렇지 않으면 부모에게 자식 노드가없는 경우 "hi"로 확인해야합니다.상위 노드에 ChildNodes가 있는지 확인하십시오.

그러나 그런 식으로는 작동하지 않습니다. 때때로 "안녕"과 다른 시간 "helllooo"를 표시합니다. 당신은 length 재산이 아닌 count 속성을 원하는

function childnode() { 
    var treeViewData = window["<%=items.ClientID%>" + "_Data"]; 

    //if (treeViewData.selectedNodeID.value != ""){ 
    var selectedNode = document.getElementById(treeViewData.selectedNodeID.value); 
    if (selectedNode.childNodes.count >= 0) { 
    return confirm("heloo"); 
    } 
    else { 
    return confirm("hi"); 
    } 

    return false; // don't send form 
} 
+0

텍스트에서 Shift + Tab하시기 바랍니다 –

+0

, 당신은 카운트가있는 경우는 "heloo"로 응답해야한다고> = 1,하지만 당신의 코드는> = 0입니다. 오타입니까? –

+0

무슨 뜻인지 모르겠다. 무슨 상관이야? – Ish

답변

0

: 여기

는 코드입니다. 또한, 나는 당신이이 텍스트 노드를 포함 어떤 자식 노드가 있는지 여부를 알려줍니다 >= 0

var selectedNode = document.getElementById(treeViewData.selectedNodeID.value); 
if (selectedNode.childNodes.length > 0) { 
    return confirm("heloo"); 
} 

대신, > 0을 의미 생각합니다. 요소 인 자식 노드가 있는지 알아 보려면 nodeType 속성을 살펴보십시오.

var selectedNode = document.getElementById(treeViewData.selectedNodeID.value); 
var children = selectedNode.childNodes; 
var anyChildElements = false; 

for (var i = 0; i < children.length; i++) 
    if (children[i].nodeType === 1) { 
     anyChildElements = true; 
     break; 
    } 

if (anyChildElements) { 
    return confirm("heloo"); 
} 
+0

정확한 코드를 붙여 넣었지만 아무 것도하지 않습니다. 버튼을 클릭하면 확인 상자가 표시되지 않습니다. – Ish

+0

디버깅을하셨습니까? 오류 메시지를 확인 했습니까? –

+0

이벤트가 전혀 실행되지 않습니다. – Ish

1

그것은 당신이 노드요소의 차이로 실행하는 것으로 보인다. 노드도 가능합니다. 텍스트 노드 또는 공백 노드. 당신은 아마도 요소를 원할 것입니다.

NodeListcount과 같은 속성이없는 경우에도 문제가 발생합니다. 당신은 아마도 length을 찾고 있습니다.

selectedNode.childNodes.count 대신 selectedNode.children.length을 시도하십시오.

(또한, 귀하의 변수 selectedNode가 잘못된 이름이다. 요소가 아닌 노드를 돌려줍니다 document.getElementById)

+0

selectedNode.childElements.length가 작동하지 않습니다. 그 사건은 전혀 해고되지 않습니다. – Ish

+0

죄송합니다. 타이핑했습니다. 'children.length'입니다. 답변이 업데이트되었습니다. – Domenic

+0

두 노드 모두에 대해 "hi"가 표시됩니다. 첫 번째 노드는 상위 노드와 하위 노드로 구성된 seconde 노드로 구성됩니다. – Ish

관련 문제