Holen Sie sich alle Elemente, die mit beginnen Klassennamen

Ich versuche nur bestimmte divs. Die Art und Weise habe ich beschlossen, dies zu tun ist, um erste verstecken alle Elemente, die beginnen mit "Seite" und dann zeigen Sie nur die richtige divs. Hier meine (vereinfachte) code:

<form>    
    <input type="text" onfocus="showfields(1);">
    <input type="text" onfocus="showfields(2);">
</form>
<div class="page1 row">Some content</div>
<div class="page1 row">Some content</div>
<div class="page2 row">Some content</div>
<div class="page2 row">Some content</div>
<script>
    function showfields(page){
        //hide all items that have a class starting with page*
        var patt1 = /^page/;
        var items = document.getElementsByClassName(patt1);
        console.log(items);
        for(var i = 0; i < items.length; i++){
            items[i].style.display = "none";
        }

        //now show all items that have class 'page'+page
        var item = document.getElementsByClassName('page' + page);
        item.style.display = '';
    }
</script>

Wenn ich console.log(items); bekomme ich ein leeres array. Ich bin mir ziemlich sicher, dass die regexp ist Recht (bekommen alle Artikel beginnend mit 'Seite').
Der code, den ich verwende, ist old-school-JS, aber ich bin nicht abgeneigt, um die Verwendung von jQuery. Auch wenn es eine Lösung gibt, der nicht mit regexp, das ist auch in Ordnung, wie ich bin neu mit regexp ' s.

InformationsquelleAutor Dairy Window | 2016-04-04

Schreibe einen Kommentar