fonction getElementsByClassName perso
Bonjour,
afin d'être compatible avec plusieurs navigateurs j'ai trouvé cette fonction sur intenret : getElementsByClassName() pour sélectionner des éléments d'une page html par leur class.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function getElementsByClassName(className, elm) {
var selection = new Array();
var regex = new RegExp("\\b" + className + "\\b");
if(!elm) {
elm = document;
} else if(typeof(elm) == "string") {
elm = document.getElementById(elm);
}
var elmts = elm.getElementsByTagName("*");
for(var i=0; i<elmts.length; i++) {
if(regex.test(elmts[i].className)) {
//alert(elmts[i])
selection.push(elmts[i]);
}
}
return selection;
} |
J'ai créé ce ode html pour l'exemple :
Code:
1 2 3
|
<p class="ro">sqdfs <strong>dfkls <a href="#" class="titi">jfl</a></strong> kdj sdjfksdjf <a href="#" class="titi">sdkjflsj</a> dfsd</p>
<p id="bidule" class="coco" style="left:13px">sqdfs <strong>dfklsjfl</strong> kdj sdjfksdjf <a href="#" class="titi">hoho</a> dfsd</p> |
Lorsque je fait :
Code:
alert(getElementsByClassName('ro'));
Il me retourne : [object HTMLParagraphElement], ce qui me parait normal. Par contre, lorsque je fait ceci :
Code:
alert(getElementsByClassName('titi'));
Qui sont des classes mise sur les liens, il me retourne la valeur de "href" : http://domjs/#,http://domjs/#,http://domjs/#
J'ai du faire une erreur, mais je n'arrive pas à voir ou et ça fait 4H que je suis en train d'essayer de comprendre.
Pouvez-vous m'aider ?
Merci.
Bien cordialement.