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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
alert(getElementsByClassName('ro'));
Il me retourne : [object HTMLParagraphElement], ce qui me parait normal. Par contre, lorsque je fait ceci :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.