0

真的很简单的问题,我正在使用 getElementById 来定位我的 divstandby并更改其样式。现在,出于对任何事物的热爱,我无法找到如何将我的 CSS 中写入的内容定位#standby img为. 我将如何定位它并使用 JavaScript 更改其样式?imgstandby

4

4 回答 4

2

对于所有浏览器中的纯 javascript,它将是这样的:

var imgs = document.getElementById("standby").getElementsByTagName("img");

在更高级的浏览器中,您可以使用:

var imgs = document.querySelectorAll("#standby img");

其中每一个都返回一个 nodeList(类似于 DOM 元素的数组),然后您可以对其进行迭代。


然后,您可以像这样迭代其中任何一个的结果:

for (var i = 0; i < imgs.length; i++) {
    imgs[i].style.width = "300px";
}

如果您知道该 div 中只有一个图像,那么您可以这样做而不是迭代多个:

document.getElementById("standby").getElementsByTagName("img")[0].style.width = "300px";
于 2013-03-12T22:19:39.920 回答
1

将 document.querySelector 用于纯 JavaScript 解决方案:

document.querySelector("#erg img");

然后,您可以像使用 getElementById 检索的元素一样更改其样式。

于 2013-03-12T22:20:13.900 回答
0

您可以使用 jQuery 轻松完成此操作。$('#standby img'). 值得研究。

于 2013-03-12T22:19:31.800 回答
0

所以你已经standby使用getElementById().

要获取其中的img元素,您需要使用getElementsByTagName()

var standby = document.getElementById('standby');
var standbyImgs = standby.getElementsByTagName('img');

我猜你已经有了第一行,所以你只需要第二行。或者将它们合二为一。

需要注意的是,它getElementsByTagName()返回一个元素数组,而不是像getElementById(). 因为很明显,那里可能不止一个img,而应该只有一个具有给定 ID 的元素。

于 2013-03-12T22:20:03.757 回答