• ParentNodes、childNodes、children之间的区别


    "parentNode"

    常用来获取某个元素的父节点. 把 parentNodes 理解为容器, 在容器中有个子节点    

    例:
    <div id="parent">
    <b id="child">My text</b>
    </div>

    在上面的代码中, 你看到把"爹"作为一个 div 容器, 该容器中有个"孩子", 就是粗体的文字部分. 如果你打算用getElementById() 方法获取粗体元素并且想知道它"爹"是谁, 返回的信息将是一个 div. 演示下面的脚本, 你就知道是怎么回事啦 ... 

    “children”

    有些时候你发现调用childNodes属于没有获得你期望的值。比如:

    html:

    <a href="javascript:void(0);" onclick="selectCategory('1,this);">
                                <span>apple</span>
    </a>

    JS:

    function selectCategory(val,obj){  
        var text = obj.children[0].innerHTML;

    }

    我们希望获得的text属性值为“apple”,但实际上的值是undefined,也就是说获取失败。

    原因:

    childNodes属性返回值包含了元素节点和文本节点,此例中obj.children[0]返回的实际是空格。

    解决方案:

    1)去掉<span>和<a>之间的空格。

    2)改用 obj.children[0].innerHTML。children属性只返回元素节点。

    "childNodes"

    ,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。

    例子:

    function setCount(count) {
    var counts = count.split(",");
    for (var i = 0; i < counts.length; i++) {
    var j = i + 1;
    document.getElementById('Text' + j).innerText = counts[i];
    }
    }
    function setTable() {
    var table = document.getElementById("bodyTb");
    var n = 1
    for (var i = 2; i <= 7; i++) {
    var row = table.rows(i);
    if (i == 3) {
    for (var j = 2; j <= 14; j++) {
    row.insertCell(j).innerHTML = " <span style='100%' id='Text" + n + "' ondblclick='EXCDWE(this)'></span>";
    n++;
    }
    }
    else {
    for (var j = 1; j <= 13; j++) {
    row.insertCell(j).innerHTML = " <span style='100%' id='Text" + n + "' ondblclick='EXCDWE(this)'></span>";
    n++;
    }
    }
    }
    }

  • 相关阅读:
    Redis命令行之Hash
    Redis命令行之String
    Redis配置
    访问者模式【行为模式】
    状态模式【行为模式】
    责任链模式【行为模式】
    观察者模式【行为模式】
    策略模式【行为模式】
    模板方法模式【行为模式】
    组合模式【结构模式】
  • 原文地址:https://www.cnblogs.com/panmy/p/5142950.html
Copyright © 2020-2023  润新知