2015-08-16 42 views
1

返回值訪問班級名冊所以我有一個div,看起來像:錯誤從getElementsByClassName方法

<div class="wrapper transform-class"> 
</div> 

和我的CSS我有一些CSS變換。所以我transform-class有:

-webkit-transform: none !important; 

然後,當然,我的包裝,對那裏的變換風格。

所以一旦頁面加載,幾秒鐘後。我刪除了transform-class,然後wrapper類的樣式接管了它,並且它具有很好的動畫效果。

我不想使用jQuery(我想了解更多/更好的JavaScript)。我越來越

Uncaught TypeError: Cannot read property 'remove' of undefined

我的JavaScript錯誤..我的JS文件看起來像:

window.setTimeout(function(){ 
    var el = document.getElementsByClassName("wrapper"); 
     el.classList.remove("transform-class"); 
}, 2000); 

什麼想法?

+0

'getElementsByClassName'返回一個數組而不僅僅是一個元素。 –

回答

2

getElementsByClassName返回HTMLCollection。因此,通過索引訪問特定項目,然後使用刪除

window.setTimeout(function(){ 
    var els = document.getElementsByClassName("wrapper"); 
    for(var i = 0; i < els.length; i++){ 
     els[i].classList.remove("transform-class"); 
    } 
}, 2000); 
+0

,如果你想從所有的.wrapper元素中刪除類,那麼只需循環遍歷數組,然後將它移除到每個元素。 – dangor

+1

@dangor,很好的建議,謝謝 – AmmarCSE

+0

@ Snoopies:請注意,在所有目標瀏覽器上,'classList'相對較新,[可能不支持](http://caniuse.com/#feat=classlist)。如果沒有,[這個問題和它的答案](http://stackoverflow.com/questions/195951/change-an-elements-class-with-javascript?lq=1)告訴你如何使用'className'來代替。 (就此而言,IE8不支持'getElementsByClassName',但遺憾的是仍然有很大的市場份額,請考慮'querySelectorAll') –

相關問題