JavaScript 循环和数组
2018-09-19
87
我对 JavaScript 还很陌生,正在努力学习一本书并完成练习。
有人能帮我解释一下这个循环中发生了什么,以及最后数组中存储了什么吗?
我知道它在 HTML 中将 image.src 设置为“href”值,但为什么在 getAtribute 之前需要链接? 它将“href”和“title”存储在哪里?
"use strict";
var $ = function (id) { return document.getElementById(id); };
var imageCache = [];
var i, link, image;
for ( i = 0; i < links.length; i++ ) {
link = links[i];
image = new Image();
image.src = link.getAttribute("href");
image.title = link.getAttribute("title");
imageCache[imageCache.length] = image;
}
提前感谢您的帮助!这个社区在解决这个问题时救了我一命。
2个回答
but why does it need link before getAtribute
如果您在 Google 上搜索
getAttribute
,您会发现它是在 HTML 元素上调用的方法。因此
links
似乎是 HTML 元素(可能是链接元素)的数组。
Where is it storing the "href" and the "title"?
它将它们存储为此对象的属性:
image = new Image()
。
Giorgi Moniava
2018-09-19
正如评论中提到的,您没有向我们展示
links
数组是什么样子的。但是,假设它是一个 DOM 元素链接数组,下面是该代码的演示:
"use strict";
var $ = function (id) { return document.getElementById(id); };
var imageCache = [];
var i, link, image;
//looping through every element of links array
for ( i = 0; i < links.length; i++ ) {
link = links[i]; //this is the link we're at in the loop, making it easier to reference
image = new Image(); //creating a new Image element
image.src = link.getAttribute("href"); //set the src attribute of the image to the href of the link
image.title = link.getAttribute("title"); //set the title of the image to the title of the link
imageCache[imageCache.length] = image; //put the image in the imageCache array for use later
}
话虽如此,我认为您可以研究一下
Array.map()
,作为将一个链接数组转换为另一个图像数组的替代方法。
Michael Tallino
2018-09-19