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