2013-03-12 101 views
0

簡單的問題真的,我使用getElementById來定位我的div standby並更改其樣式。現在,我無法對任何事情的熱愛了解如何將我的CSS中寫入的內容定位爲#standby img,也就是standby內的img標記。我將如何瞄準這個並改變它的樣式與JavaScript?使用JavaScript定位CSS getElementById

+0

你怎麼知道這是一個簡單的問題;-) – Christophe 2013-03-12 22:19:07

+2

document.querySelector('#standby img')很好? ;-) http://caniuse.com/#feat=queryselector – mariozski 2013-03-12 22:19:10

+0

mariozski這正是我需要的! – NollProcent 2013-03-12 22:52:55

回答

2

對於所有瀏覽器普通的JavaScript,這將是這樣的:

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

在更先進的瀏覽器,你可以這樣做:

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

每個返回的節點列表(就像一個DOM元素數組),然後可以迭代。


然後,您可以遍歷的任一結果是這樣的:

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

如果你知道有一個且只有一個在該分區的形象,那麼你可能只是這樣做而不是迭代超過一個:

document.getElementById("standby").getElementsByTagName("img")[0].style.width = "300px"; 
+0

我結束了使用文檔。而不是,但這也幫助:-) – NollProcent 2013-03-12 22:53:57

0

你可以用jQuery輕鬆做到這一點。 $('#standby img')。值得期待。

+1

這不是一個jQuery問題。 – jfriend00 2013-03-12 22:19:57

+0

如果我是海報,我想知道這種問題有一個非常流行的框架來解決它。 – ktm5124 2013-03-12 22:21:40

+2

這裏的StackOverflow約定是,你不只是盲目地提供一個jQuery的答案,沒有提及或標籤與jQuery相關的問題。 – jfriend00 2013-03-12 22:22:46

0

所以你已經得到了standby元素使用getElementById()

要得到其中的img元素,你需要使用getElementsByTagName()

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

我想你已經擁有了第一線,所以你只需要第二。或者將它們合併爲一個。

重要的是要注意getElementsByTagName()返回一個元素數組,而不是像getElementById()這樣的單個元素。因爲很顯然,那裏可能有多個img,而應該只有一個具有給定ID的元素。

1

使用document.querySelector一個純JavaScript解決方案:

document.querySelector("#erg img"); 

然後你可以改變它的風格,就像您用的getElementById檢索一個元素。