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

.

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를 사용하는 모습입니다 : 또한 약간 더 널리 getElementsByClassName보다 지원 querySelectorAll 있습니다

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

'getElementsByClassName'의 결과가 배열이 아닙니다. 그것은 살아있는'NodeList'입니다.리스트는 내부의 노드가 변경 될 때 응답 할 것이므로 까다로울 수 있습니다. 또한 배열에있는 모든 메소드를 가질 수는 없습니다. – Hemlock

+0

@Hemlock ok. 감사 – paislee

관련 문제