2014-09-22 90 views
1

從我所瞭解的document.getElementsByClassName返回類似數組對象的東西。選擇數組中的所有值

如何在不使用jQuery的情況下修改所有返回的對象?

比方說,我想要更改所有應用了「class1」的div的border-color

<div id="container"> 
    <div class="class1">Hello</div> 
    <div class="class2">World</div> 
    <div class="class1">Hello</div> 
    <div class="class2">World</div> 
</div> 
+0

您可以使用常規的'for loop'遍歷集合。 – 2014-09-22 07:46:48

+0

有沒有代碼? – 2014-09-22 07:47:13

+0

需要什麼代碼。沒有它,這個問題是完全可以理解的 – mplungjan 2014-09-22 07:48:45

回答

4

即使jQuery也會遍歷返回的對象。隱藏for(或whileeachmap)環只是語法糖,但它仍然是一個循環它下面的所有:

var class1 = document.getElementsByClassName('class1'); 
for (var i = 0; i < class1.length; i++) { 
    class1[i].style.borderColor = 'green'; 
} 
+2

@mplungjan:是的,那就是「一氣呵成......」的方法。即使jQuery也這樣做。隱藏for(或while,或each或map)循環只是語法糖,但它仍然是一個循環。 「一氣呵成」的 – slebetman 2014-09-22 07:57:51

1

一氣呵成===在一行?

[].forEach.call(document.getElementsByClassName("class1"), function(c) { c.style.borderColor = "red"; }); 
+1

並不意味着正常英語中的一行 – slebetman 2014-09-22 07:58:51

+0

@slebetman謝謝你的洞察力。實際上這是一種解釋,因爲目前還不清楚OP的意思是「一氣呵成」。 – MaxArt 2014-09-22 08:01:11

+0

我是一個「一口氣」添加並刪除它,因爲它似乎有些困惑 – mplungjan 2014-09-22 08:12:19