Ich versuche, nur bestimmte div
s zu zeigen. Die Art, wie ich mich dazu entschieden habe, ist, zuerst alle Elemente auszublenden, die mit "page" beginnen und dann nur die korrekten div
s anzeigen. Hier ist meine (vereinfacht) Code:Erhalten Sie alle Artikel, die mit dem Klassennamen beginnen
<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>
Als ich console.log(items);
ich eine leere Array erhalten. Ich bin mir ziemlich sicher, dass die Regexp richtig ist (alle Artikel beginnen mit 'Seite'). Der Code, den ich verwende, ist Old School JS, aber ich bin nicht abgeneigt, jQuery zu verwenden. Auch wenn es eine Lösung gibt, die regexp nicht verwendet, ist das auch in Ordnung, da ich neu mit regexp's bin.
Die Frage verwendet bereits eine Schleife. Es fragt, wie man den richtigen Satz von Elementen auswählt und nicht, wie man die Knotenliste benutzt, wenn sie einmal vorhanden ist. – Quentin
@Quentin Yup musste meinen Kopf um ein Code-Snippet wickeln. Sorry für die Verzögerung –