2016-03-18 54 views
-1

我正在將jQuery網站轉換爲香草javascript,並且希望將最簡單的jQuery線轉換爲javascript的最佳方式。使用GetElementsByClassName添加類JavaScript

jQuery的 $(".div_class").css({ display: 'none' });

任何建議只使用類在純JavaScript這樣做會 是非常有益的。

感謝

+0

的[更改整個使用CSS類的javascript的風格(http://stackoverflow.com/questions/9153718/change-可能的複製這是一個完整的CSS類使用JavaScript) – thatOneGuy

回答

2

嘗試使用document.getElementsByName獲得所需要的元素,

[].slice.bind(document.getElementsByClassName("div_class"))().forEach(function(itm){ 
    itm.style.display = "none"; 
}); 

而且它可以像對象數組綁定爲一個slicethis轉換成數組並調用它。現在遍歷返回的數組並設置其顯示屬性。

您也可以直接使用forEach縮短,

[].forEach.bind(document.getElementsByClassName("div_class"),function(itm){ 
    itm.style.display = "none"; 
})(); 
+3

你我的朋友,是一個忍者。 – newneub

+0

@newneub :)很高興幫助! :) –

+0

你可以進一步簡化它,刪除'slice()'步驟: [] .forEach.call(document.getElementsByClassName('div_class'),function(el){elt_style.display ='none'; }); – jpec

0

選擇與類名的所有元素:

var allEls = document.getElementsByClassName('div_class'); 

這回來了一個數組,所以你通過每一個元素都循環,並改變每個displaynone像這樣:

for(var i=0; i < allEls.length; i++){ 
    allElls[i].style.display = 'none' 
} 
0

嘗試這些線可以這樣做:

var div_class = document.getElementsByClassName('div_class'); 
for (var div in div_class) { 
    div.style.display = 'none'; 
} 

我覺得你的困惑是因爲document.getElementsByClassName('div_class')返回一個Array ......因爲,我用一個for..in - 遍歷前一陣的每場比賽。

希望它有幫助。