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

これはバニラジャバスクリプトで行う必要がありますか、またはjQueryについて聞いたことがありますか? – mindandmedia

+0

document.getElementsByClassNameについて –

答えて

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

+0

@Hemlock ok。ありがとう – paislee

関連する問題