关于函数参数的 Javascript 元素子项

Posted

技术标签:

【中文标题】关于函数参数的 Javascript 元素子项【英文标题】:Javascript element children about function parameter 【发布时间】:2018-06-09 19:20:08 【问题描述】:

以下是制作杂耍的部分代码。让我困惑的是: 在这种情况下,参数“容器”的等效 DOM 节点是什么? 有一堆元素,怎么认为<img>元素是container.children?

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>

    <div id="slideshow">
        <img src="https://www.kasandbox.org/programming-images/animals/birds_rainbow-lorakeets.png"  />
        <img src="https://www.kasandbox.org/programming-images/animals/butterfly.png" />
        <img src="https://www.kasandbox.org/programming-images/animals/cat.png"  />
        <img src="https://www.kasandbox.org/programming-images/animals/crocodiles.png"  />
        <img src="https://www.kasandbox.org/programming-images/animals/fox.png"  />

    </div>

    <script>
var slideShow = function(container) 
    this.images = [];
    this.curImage = 0;
    for (i = 0; i < container.childElementCount; i++) 
        this.images.push(container.children[i]);
        this.images[i].style.display = "none";
    

【问题讨论】:

在 DOM 层次结构中直接嵌套在另一个元素中的元素是它的子元素。 所以&lt;head&gt;&lt;body&gt;&lt;html&gt;的孩子,&lt;div&gt;&lt;script&gt;&lt;body&gt;的孩子,图片是&lt;div id="slideshow"&gt;的孩子 【参考方案1】:

container 是您调用new slideShow() 时传递的任何元素。在你的情况下,它应该是:

var ss = new slideShow(document.getElementById('slideshow'));

那么container.children就是直接嵌套在那个DIV里面的元素,都是&lt;img&gt;元素。

【讨论】:

是的,我完全是个笨蛋。脚本代码最后一行是slideShow(document.getElementById("slideshow")); 难怪我这么糊涂... Thx

以上是关于关于函数参数的 Javascript 元素子项的主要内容,如果未能解决你的问题,请参考以下文章

javascript:关于js的function参数中带的Event

JavaScript Map –如何使用JS.map()函数

关于JavaScript函数参数e

Web 三件套JavaScript 的数组函数和对象

Web 三件套JavaScript 的数组函数和对象

使用元素 ID 更新 javascript 函数中的参数