2011-07-27 18 views
5

Muszę ukryć wszystkie elementy typu "sekcja" w moim dokumencie, z wyjątkiem jednego z określonym identyfikatorem.Jak uzyskać wszystkie elementy określonego znacznika HTML w javascript?

w jQuery byłoby to łatwe

$("section").hide(); 
$("section#myId").show(); 

Jak zrobić to bez jQuery ??

(Muszę to zrobić, gdy tylko strona się załaduje i nie będzie widoczna). Potrzebuję go również do pracy z przeglądarką.

Dzięki.

Odpowiedz

12

Umieścić bezpośrednio po przed </body > w HTML

<script> 
(function() { 
    for(var els = document.getElementsByTagName ('section'), i = els.length; i--;) 
    els[i].id !== "myId" && (els[i].style.display = "none"); 
})(); 
</script> 

lub w "nowoczesnych" (HTML5) przeglądarkami:

<script> 
    [].forEach.call (document.querySelectorAll ('section'), 
    function (el) { el.id !== "myId" && (el.style.display = "none"); }) 
</script> 
21

DOMElement.getElementsByTagName jest twoim przyjacielem:

var sections = document.getElementsByTagName('section'); 
var mySection = null; 
for(var i = 0; i < sections.length; ++i) { 
    if(sections[i].id === "myId") { 
     mySection = sections[i]; 
     mySection.style.display = "block"; 
     break; 
    } 
    sections[i].style.display = "none"; 
} 
Powiązane problemy