2012-02-22 87 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