2012-02-22 118 views
1

我有一個div的頁面,每個都有多個類。影響所有節點與共享類

<div class='publication parent20'></div> 
<div class='publication parent12 parent42 parent91'></div> 
<div class='publication parent20'></div> 
<div class='publication parent32 parent23'></div> 

我需要一個函數,它傳遞給它一個類作爲變量,將它們與發佈類無所有div的樣式,然後將標籤與指定類。

function swap_pub(pub){ 
    document.getElementById("publication").style.display = "none"; 
    //set style.display = "block" to all elements with class = pub 

} 

任何想法,我會如何做到這一點。

+0

是否必須在香草javascript中完成或者您是否聽說過jQuery? – mindandmedia 2012-02-22 21:56:26

+0

如何document.getElementsByClassName? – 2012-02-22 21:57:50

回答

0

還有querySelectorAll這是稍微更廣泛的比getElementsByClassName支持。

function setDisplay(className, display) { 
    var items = document.querySelectorAll('.' + className); 
    var i = items.length; 
    while (i--) { 
     items[i].style.display = display; 
    } 
} 
1

使用getElementsByClassName()MDN

var pubs = document.getElementsByClassName('publication'); // a NodeList 

for (var i = 0; i < pubs.length; i++) { 
    pubs[i].style.display = 'block'; 
} 

這是它的外觀使用jQuery:

$('.publication').show(); // concise 
+0

getElementsByClassName的結果不是數組。這是一個活的'NodeList',這可能會很棘手,因爲當它裏面的節點發生變化時,列表將會響應。它也不會有所有的方法數組。 – Hemlock 2012-02-23 02:38:25

+0

@Hmlml ok。謝謝 – paislee 2012-02-23 03:03:28