比如我有簡單的html代碼:如何通過父元素ID更改類樣式爲兒童元素?
<a id="news" href="#"><div class="" >News</div></a>
如何通過HREF的ID在純JavaScript改變類樣式div元素? 也可以得到更好的類「a」元素形容格屬性? (怎麼辦呢?)
比如我有簡單的html代碼:如何通過父元素ID更改類樣式爲兒童元素?
<a id="news" href="#"><div class="" >News</div></a>
如何通過HREF的ID在純JavaScript改變類樣式div元素? 也可以得到更好的類「a」元素形容格屬性? (怎麼辦呢?)
你可以使用getElementById
爲您的「新聞」元素的引用。然後你就可以找到它的childNodes
和div
設置div的className
財產。
舉例來說,這將與你引用設置元素的「福」類中的HTML工作:
document.getElementById("news").childNodes[0].className = "foo";
...因爲DIV是「新聞」的第一個孩子元件。目前使用(more on support)
document.getElementById("news").childNodes[0].className += " foo";
也值得一querySelector
和querySelectorAll
,這是支持最(但不是全部)的瀏覽器:或者,如果你想添加的「foo」的類。
如果可能有其他元素,空白/文本節點,等等,你可能看getElementsByTagName
而非childNodes
所以你只得到了具體的元素,你有興趣:
document.getElementById("news").getElementsByTagName('div')[0].className += " foo";
探索更多:
有許多方法可以做到這一點,但假設之上的直接結構。
var new_class = "ClassName";
document.querySelector('a#news > div').setAttribute('class', new_class);
當然,如果你的瀏覽器不支持querySelector
你必須多做一點finagling這樣
document.getElementById('news').childNodes[0].setAttribute('class', new_class);
var newsA = document.getElementById('news');
var myDiv = newsA.getElementsByTagName('div')[0];
myDiv.setAttribute('class', 'myClass');
這是一種方法。
爲了把它轉換成一個漂亮的一行代碼:
document.getElementById('news').getElementsByTagName('div')[0].setAttribute('class', 'myClass');
咦,沒有在那裏。那麼現在我覺得很傻。 – zellio 2012-02-10 23:31:49
'@mimisbrunnr:'LOL!我們都做到了。 :-) – 2012-02-10 23:33:19