如何查找父节点是否没有子节点

时间:2017-03-21 13:00:34

标签: javascript asp.net treeview

我不确定我是否使用了正确的语法,因为我的ELSEIF似乎没有被解雇。这是正确的语法,或者测试它的最佳方法是什么?

t_mean_chunk[i,:] = np.mean(t1[i, t2[i,0]:t2[i,1], :], axis=0)

如果我单独移动警报/打开窗口就行了,所以我觉得问题出在这一行:

<script>
function OnLoad() {
        var links = document.getElementById("<%=TreeView1.ClientID %>").getElementsByTagName("a");
        for (var i = 0; i < links.length; i++) {
            links[i].setAttribute("href", "javascript:NodeClick(\"" + links[i].id + "\", \"" + links[i].getAttribute("href") + "\")");
        }
    }
    window.onload = OnLoad;
    function NodeClick(id, attribute) {

        var nodeLink = document.getElementById(id);

        if (nodeLink.hasChildNodes)
        {
            eval(attribute);
        }
        else if (nodeLink.hasChildNodes == false)
        {
            alert(nodeLink.innerHTML + " clicked");
            window.open("../NewFolder/addNewProduct.aspx");
        }
        else
        {
            return;
        }
    }
  </script>

2 个答案:

答案 0 :(得分:1)

hasChildNodes的syntax表示它是一种方法。我认为将其更改为方法应解决问题

应该注意, hasChiildNodes()会考虑空格和注释。来自MDN文档

  

childNodes还包括例如文本节点和注释。要跳过它们,请改用ParentNode.children。

 if (nodeLink.hasChildNodes())
    {
        eval(attribute);
    }
    else if (!nodeLink.hasChildNodes())
    {
        alert(nodeLink.innerHTML + " clicked");
        window.open("../NewFolder/addNewProduct.aspx");
    }
    else
    {
        return;
    }

检查两个小提琴以获得差异

答案 1 :(得分:0)

parentNode.children.length;

如果是0,则根本没有子节点 例如

&#13;
&#13;
console.log(document.getElementById('d1').children.length); //->0
console.log(document.getElementById('d2').children.length); //->3
&#13;
<div id="d1"></div>
<div id="d2">
  <div></div>
  <div></div>
  <div></div>
</div>
&#13;
&#13;
&#13;