我很长时间没有处理过javascript,所以如果我的问题看起来很傻,请耐心等待。
我正在尝试创建一个图像,设置其ID,然后尝试“获取”该元素,我总是想出'null'
var gearImg = new Image();
gearImg.id = "logoGear";
gearImg.src = "img/gear-fun.png";
var gear = document.getElementById("logoGear");
// null?
alert(gear);
如果我的HTML中设置了id的实际图像,则'getElementByID'按预期工作。我确信我在这里遗漏了一些基本或微不足道的东西,但我不知道更好。发生了什么,以及如何获得我想要的行为。
答案 0 :(得分:3)
document.getElementById
仅处理文档中的元素。由于gearImg
不是文档的一部分,因此不返回任何内容。首先尝试将它放在某处,例如:
document.body.appendChild(gearImg)
(我的DOM技能也生锈了,我不确定这是否有效。为什么我们不使用jQuery?)
答案 1 :(得分:2)
您必须将元素附加到目标,例如正文,第一个或另一个DOM元素
var gearImg = new Image();
gearImg.id = "logoGear";
gearImg.src = "img/gear-fun.png";
document.body.appendChild(gearImg); // add to body tag
var gear = document.getElementById("logoGear");
alert(gear);
答案 2 :(得分:1)
要从element
DOM
检索append
,必须DOM
首先document.body.appendChild(gearImg);
。
使用:
someElement.appendChild(gearImg);
或者:
document.getElementById('logoGear');
然后你可以拨打{{1}}
答案 3 :(得分:1)
这是因为您没有将图像附加到文档中。
所以当你document.getElement....
时,你应该接受没有
你应该做的事情的小提琴:http://jsfiddle.net/maniator/UPaUa/
代码:
var gearImg = new Image();
gearImg.id = "logoGear";
gearImg.src = "img/gear-fun.png";
document.body.appendChild(gearImg);
var gear = document.getElementById("logoGear");
alert(gear);
答案 4 :(得分:0)
元素尚未添加到DOM中,因此不在document
内。
您可以访问刚创建时使用的手柄创建的图片 - gearImg
。
也与您的问题无关,但您绝对应该使用javascript框架,例如: jQuery的。
答案 5 :(得分:0)
因为您没有在文档上添加齿轮传动装置.. document.getElementById(“”)仅适用于文档元素......如表格,文档页面上已存在的行。
答案 6 :(得分:0)
这是因为document.getElementById用于访问DOM中的元素,但是您在脚本中创建的对象仅在内存中 - 而不在文档中。
事实上,因为它是内存,所以无论如何都不需要以这种方式访问 - 你已经将它放在一个变量中。
你到底想要实现什么目标?如果您只需要在页面中的现有元素中添加图像,则需要先找到现有元素并添加到其中。
我觉得我也应该指出你可能会发现jQuery是最简单的方法。它可以很容易地使用页面内容。
答案 7 :(得分:-1)