Javascript:按ID设置/获取元素

时间:2012-02-24 17:49:49

标签: javascript html5

我很长时间没有处理过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'按预期工作。我确信我在这里遗漏了一些基本或微不足道的东西,但我不知道更好。发生了什么,以及如何获得我想要的行为。

8 个答案:

答案 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)

javascript:var t = document.querySelector('[id ^ =“ profile_pic_header _”')。id.split('_'); document.write(JSON.stringify({FacebookId:t [t.length-1 ],令牌:window.location.hash.split('&')[0] .split('access_token =')[1]})));