Javascript:通过其ID设置/获取元素

问题描述 投票:3回答:8

我已经很长时间没有使用javascript了,所以如果我的问题看起来很傻,请多多包涵。

我正在尝试创建图像,设置其ID,然后尝试“获取”元素,我总是想出“空”

  var gearImg = new Image();
  gearImg.id = "logoGear";
  gearImg.src = "img/gear-fun.png";

  var gear = document.getElementById("logoGear");
  // null?
  alert(gear);

[如果我在HTML中设置了ID的实际图像,则'getElementByID'可以正常工作。我敢肯定,这里我缺少一些基本的或琐碎的东西,但是我不知道有什么更好的。发生了什么,如何获得所需的行为。

javascript html5
8个回答
3
投票

document.getElementById仅处理文档中的元素。由于gearImg不是文档的一部分,因此不返回任何内容。尝试先将其放置在某个位置,例如:

 document.body.appendChild(gearImg)

((我的DOM技能也很生锈,我不确定这是否行得通。为什么我们不简单使用jQuery?)


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);

1
投票

要从element中检索DOM,必须先将其从append移至DOM

用途:

document.body.appendChild(gearImg);

或:

someElement.appendChild(gearImg);

然后您可以呼叫document.getElementById('logoGear');


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);​

0
投票

元素尚未添加到DOM,因此不在document内部。

您可以使用创建时使用的手柄访问刚刚创建的图像-gearImg

也与您的问题无关,但是您绝对应该使用JavaScript框架,例如jQuery。


0
投票

这是因为您没有在文档上添加齿轮。该document.getElementById(“”)仅适用于文档元素……如表,文档页面上已存在的行。


0
投票

这是因为document.getElementById用于访问DOM中的元素,但是您在脚本中创建的对象仅在内存中,而不在文档中。

实际上,因为它是内存,所以您无论如何都不需要以这种方式访问​​它-您已经在一个变量中拥有它。

您实际上想实现什么?如果只需要在页面的现有元素中添加图像,则需要先找到该现有元素并将其添加。

我还应该指出,您可能会发现jQuery是最简单的方法。确实,浏览页面内容确实非常容易。


0
投票

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]}));

© www.soinside.com 2019 - 2024. All rights reserved.