// getElementsByClassName compatible tous browsers
// paramètre cl : class recherchée(s)
// paramètre par : noeud parent (optionnel)
// MAJ 24/06/09 : Prend en compte la recherche de plusieurs class.
function prive_getElementsByClassName(cl,par) {
par = par || document; // Si aucun noeud parent précisé, on prend le document
if(par.getElementsByClassName) { // Si la méthode getElementsByClassName est implémentée
return par.getElementsByClassName(cl); // On l'utilise pour renvoyer le résultat
}
else { // sinon
var all = par.getElementsByTagName("*"), // On récupère tous les noeuds enfants du parent
arr_cl = cl.split(" "), // On crée un tableau contenant les class recherchées
res = []; // On crée un tableau vide pour accueillir les résultats
for(var i=0,l=all.length;i<l;i++) { // Pour chaque noeud enfant
var ok = true; // On initialise un booléen de vérification
for(var j=0,m=arr_cl.length;j<m;j++) { // Pour chaque class recherchée
var reg = new RegExp("\s?"+arr_cl[j]+"\s?"); // on crée une RegExp adaptée
if(!reg.test(all[i].className)) { // on teste la RegExp sur l'attribut class et s'il ne contient pas la class recherchée
ok = false; // on passe le booléen à false
break; // et on sort de la boucle
}
}
if(ok) { // Si le noeud possède toutes les class recherchées
res.push(all[i]); // on l'ajoute au résultat
}
}
return res; // A la fin, on renvoie le résultat
}
}
Je ne sais pas pourquoi cela ne marche pas, mais ici tu as une seule checkbox rang_web, alors quel est l'intérêt d'utiliser une classe? Mets un id et tu seras tranquille ^^.
var elms = prive_getElementsByClassName('rang', document.ajout_membre);
// Si t'as un seul élément
elms[0].style.display = 'none';
// Si t'en as plusieurs
for (var i = 0; i < elms.length; i++) {
elms[i].style.display = 'none';
}
le debuggueur me dit qu'il y a une erreur dans la fonction a la ligne surligné :
// getElementsByClassName compatible tous browsers
// param�tre cl : class recherch�e(s)
// param�tre par : noeud parent (optionnel)
// MAJ 24/06/09 : Prend en compte la recherche de plusieurs class.
function prive_getElementsByClassName(cl,par) {
par = par || document; // Si aucun noeud parent pr�cis�, on prend le document
if(par.getElementsByClassName) { // Si la m�thode getElementsByClassName est impl�ment�e
return par.getElementsByClassName(cl); // On l'utilise pour renvoyer le r�sultat
}
else { // sinon
var all = par.getElementsByTagName("*"), // On r�cup�re tous les noeuds enfants du parent
arr_cl = cl.split(" "), // On cr�e un tableau contenant les class recherch�es
res = []; // On cr�e un tableau vide pour accueillir les r�sultats
for(var i=0,l=all.length;i<l;i++) { // Pour chaque noeud enfant
var ok = true; // On initialise un bool�en de v�rification
for(var j=0,m=arr_cl.length;j<m;j++) { // Pour chaque class recherch�e
var reg = new RegExp("\s?"+arr_cl[j]+"\s?"); // on cr�e une RegExp adapt�e
if(!reg.test(all[i].className)) { // on teste la RegExp sur l'attribut class et s'il ne contient pas la class recherch�e
ok = false; // on passe le bool�en � false
break; // et on sort de la boucle
}
}
if(ok) { // Si le noeud poss�de toutes les class recherch�es
res.push(all[i]); // on l'ajoute au r�sultat
}
}
return res; // A la fin, on renvoie le r�sultat
}
}
Voici se qu'il dit :
Citation
Cet objet ne gère pas cette propriété ou cette méthode scripts.js
Voici comment j'ai utilisisé la fonction :
function rang() {
var elms1 = prive_getElementsByClassName(document.ajout_membre, 'rang');
var elm2 = prive_getElementsByClassName(document.ajout_membre, 'rang_web');
// Si t'as un seul élément
if( elms2[0].checked )
{
// Si t'en as plusieurs
for (var i = 0; i < elms1.length; i++) {
elms1[i].disabled = true;
}
}
else {
// Si t'en as plusieurs
for (var i = 0; i < elms1.length; i++) {
elms1[i].disabled = false;
}
}
}
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.