2012-02-10 81 views

回答

10

你可以使用getElementById爲您的「新聞」元素的引用。然後你就可以找到它的childNodesdiv設置div的className財產。

舉例來說,這將與你引用設置元素的「福」類中的HTML工作:

document.getElementById("news").childNodes[0].className = "foo"; 

...因爲DIV是「新聞」的第一個孩子元件。目前使用(more on support

document.getElementById("news").childNodes[0].className += " foo"; 

也值得一querySelectorquerySelectorAll,這是支持(但不是全部)的瀏覽器:或者,如果你想添加「foo」的類。

如果可能有其他元素,空白/文本節點,等等,你可能看getElementsByTagName而非childNodes所以你只得到了具體的元素,你有興趣:

document.getElementById("news").getElementsByTagName('div')[0].className += " foo"; 

探索更多:

2

有許多方法可以做到這一點,但假設之上的直接結構。

var new_class = "ClassName"; 
document.querySelector('a#news > div').setAttribute('class', new_class); 

當然,如果你的瀏覽器不支持querySelector你必須多做一點finagling這樣

document.getElementById('news').childNodes[0].setAttribute('class', new_class); 
+0

咦,沒有在那裏。那麼現在我覺得很傻。 – zellio 2012-02-10 23:31:49

+0

'@mimisbrunnr:'LOL!我們都做到了。 :-) – 2012-02-10 23:33:19

0
var newsA = document.getElementById('news'); 
var myDiv = newsA.getElementsByTagName('div')[0]; 
myDiv.setAttribute('class', 'myClass'); 

這是一種方法。

爲了把它轉換成一個漂亮的一行代碼:

document.getElementById('news').getElementsByTagName('div')[0].setAttribute('class', 'myClass');