Ciao, premetto la mia totale ignoranza in js.
Sto cercando un modo per poter visualizzare o nascondere n elementi cliccando su due tag <a>.
Un utente mi ha postato uno script semplicissimo (che ho capito anche io
) che però si basa su id
Codice PHP:
<a onclick="document.getElementById('pippo').className = '';">Mostra</a>
pippo è l'id di una riga di una tabella, la cui classe iniziale è 'nascosto', una classe che in css è invisibile, quindi cliccando sul tasto Mostra, in js si cambia la classe di pippo che magicamente appare. La tecnica è molto semplice, ma io dovrei nascondere o mostrare diversi elementi, non sempre dello stesso tipo di tag, quindi credevo esistesse una funzione js getElementByClass che mi avesse risolto il problema in un attimo, praticamente assegno a tutte le cose da nascondere la classe "nascosti" e automaticamente sono invisibili, poi clicco su "Mostra" e tutti gli elementi che hanno come classe "nascosti" appaiono, solo che in js non esiste un getElementByClass, ma ho trovato googlando questa funzione:
Codice PHP:
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if (node == null)
node = document;
if (tag == null)
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if (pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
solo che:
1. ci capisco ben poco
2. questa mi dovebbe restituire una lista di elementi, ma in che senso? mi restituisce l'id di ciascun elemento che ha la classe che specifico? o cosa? Se uso questa fuzione al posto della getElementById ovviamente non funziona, non sapendo neanche cosa restituisce esattamente. Potreste farmi capire come coniugare le due cose?