2011-12-19 48 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 2011-12-19 18:57:19

+0

我會檢查每個孩子的'nodeType'。有可能是你沒有想到的東西:http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247 – canon 2011-12-19 19:03:53

+0

我怎麼知道哪個節點類型?有什麼方法檢查? – Ish 2011-12-19 19:11:39

回答

3

嘗試檢查

var hasChilds = selectedNode.children.length > 0; 

這將檢查元素而不是childNodes,它將檢查元素和文本節點,這些元素和文本節點可能來自標記中的空白。

+0

試過以上。但它提醒有沒有孩子。 – Ish 2011-12-19 19:14:07