使用JS相当新,我创建了一个图像,点击它后会弹出一个弹出模式。我在w3schools.com上关注一个例子,但我希望他们能解释他们代码的这一方面。所以弹出模式包含一个" x"点击后,将关闭模态,因为它应该。但是,当他们在JS中为取消按钮创建变量时,他们会在括号中跟随0:
var closeButton = document.getElementsByClassName("close")[0];
^
^
我的第一个问题是,你对这个包含数值的部分有什么看法?这是一个阵列吗?这用于衡量记录的点击次数(即点击后,此值将更改为[1]?)。
此外,我是否可以附加另一个变量代替该值?换句话说,如果我有可能做到以下几点?
var clicks = [0];
var closeButton = document.getElementsByClassName("close").clicks;
我想知道这个,因为我想看到如果点击按钮,我会在同一网站的其他模态上使用相同的取消按钮。通过这个,我的意思是我想将点击值更改回[0],因此它对其他模态的工作方式相同(截至目前,取消按钮仅适用于第一个模态,并且它不会关闭其他的。我相信这是因为我不会回到[0])。
对不使用正确术语表示歉意;这是我问这个问题的主要原因之一。括号[0]中的值是什么?它是否衡量点击次数?当我想对其他模态执行相同的操作时,如何更改其值以使其返回[0]?任何和所有的帮助将非常感激,因为我对此很新。
答案 0 :(得分:1)
var closeButton = document.getElementsByClassName("close")[0];
“getElemetsByClassName”将返回一个数组。通过在结尾处使用“[0]”,它只是说我想在closeButton上存储此数组的第一个位置。
如果页面上只有一个“.close”,则返回的是 - >> [元件]。 如果有多个 - >>> [元素,元素......]
答案 1 :(得分:1)
函数 getElementsByClassName [name] 返回包含 [name] 作为类名的所有元素的数组。因为在这个例子中只有一个具有此特定类名的元素(或者他们知道它们只需要数组的第一个元素),所以附加了索引[0],返回该数组的第一个元素。因此,除了使用“close”类创建更多元素之外,更改索引是没有意义的。此外,索引与点击次数或用户互动无关。
希望这能回答你的问题^^
答案 2 :(得分:0)
括号中的值表示数组的索引。
本声明:
document.getElementsByClassName("close")
返回文档中的元素数组,类名为“close”。如果有多个关闭按钮,它将返回所有这些元素的数组。
在该语句的末尾添加[0]
意味着您正在选择数组起始索引处的元素(数组中的第一个元素)。
您可以将其更改为[1]
,它会选择该数组中的第二个元素,但在这种情况下,这对您没有帮助。
如果您想使用相同的关闭按钮关闭多个模态,并且只有一个关闭按钮,其类名称为“close”,则始终可以选择该按钮:
document.getElementsByClassName("close")[0]