有人可以帮我理解appendChild方法实际发生了什么吗?

时间:2016-07-17 12:36:36

标签: javascript dom

<blockquote id="quote">
    No book can ever be finished. While working on it we learn
    just enough to find it immature the moment we turn away
    from it.
</blockquote>

<script>
    function elt(type) {
        var node = document.createElement(type);
        for (var i = 1; i < arguments.length; i++) {
            var child = arguments[i];
            if (typeof child == "string")
                child = document.createTextNode(child);
            node.appendChild(child);
        }
        return node;
    }

    document.getElementById("quote").appendChild(
        elt("footer", "—",
            elt("strong", "Karl Popper"),
            ", preface to the second editon of ",
            elt("em", "The Open Society and Its Enemies"),
            ", 1950"
        )
    );
</script>

有人可以帮助我了解

appendChild方法的实际情况
  

的document.getElementById( “引用”)的appendChild(ELT(...));

2 个答案:

答案 0 :(得分:1)

看起来elt函数的参数为​​type,这是要创建的元素的类型(请参阅elt("footer"))。它还处理一些未指定数量的参数;对于每个作为字符串的参数,它会创建一个包含该字符串的textNode

appendChild方法只是调用elt方法,在您的示例中,使用一个参数,即函数调用(elt()), > function call包含六个参数,其中两个是elt()函数调用 - 每个参数都包含两个参数,两个参数都是字符串。

那是你在寻找什么?

答案 1 :(得分:0)

elt调用包含6个参数,其中两个参数是elt()函数调用。作为&#34;强大&#34;和&#34; em&#34;将是页脚的子元素elt函数执行的顺序如下。

第一个elt函数通过调用elt("strong", "Karl Popper")

来构建子元素

elt("em", "The Open Society and Its Enemies")

最后,elt("footer", "-", remaining arguments..)函数被调用了6个agrugments。当创建两个子节点时,它将附加文本&#34; - &#34;和&#34;,第二个编辑的前言,&#34;和&#34; 1950&#34;并构建整个文本。

如果我遗漏任何内容,请随意发表评论。