11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai besoin de votre aide pour récupérer la valeur d'une span par jquery.
Voila mon schéma, (en mode simple) Smiley confused
<ol id="ol_section" class="section">
	<li id="sectionsection1" class="sectionliste">
		Section [b]<span>1</span>[/b] : <span>Présentation section...</span>
		.....
		<div id="cursus_section_1" style="display:none;">
		<ol id="ol_cours1" class="cours cours1">				
			<li id="curcus_cours_1_1" class="coursliste">
				Cours <span>1</span> : <span class="trait_cours">[b]cours1-1[/b]</span>
			</li>
			<li id="curcus_cours_1_2" class="coursliste">
				Cours <span>2</span> : <span class="trait_cours">[b]cours1-2[/b]</span>
			</li>
			.....
		</ol>
		</div>
	</li>
	<li id="sectionsection2" class="sectionliste">
		Section [b]<span>2</span>[/b] : <span>Présentation section...</span>
		.....
		<div id="cursus_section_2" style="display:none;">
		<ol id="ol_cours2" class="cours cours2">				
			<li id="curcus_cours_2_1" class="coursliste">
				Cours <span>1</span> : <span class="trait_cours">[b]cours2-1[/b]</span>
			</li>
			<li id="curcus_cours_2_2" class="coursliste">
				Cours <span>2</span> : <span class="trait_cours">[b]cours2-2[/b]</span>
			</li>
			.....
		</ol>
		</div>
	</li>
	.....
</ol>


Je voudrais svp avoir comme résultat la valeur des span en GRAS.
Voila ou j'en suis.

var resultat="";
$(".trait_cours").each(function(){
	resultat += $(this).text()+";"+$("li:parent.sectionliste span:first").text()+"|";
});
// resultat me retourne : cours1-1;1|cours1-2;1|cours2-1;1|cours2-2;1|
// normalement les valeurs cours2-1 et cours2-2 doivent avoir ;2 et non ;1


si vous avez une idée, un grand merci Smiley cligne
Modifié par monarche (03 Jul 2015 - 12:25)
Modérateur
Bonjour,

Ton sélecteur
$("li:parent.sectionliste span:first")

Cible le premier span d'un li qui a la classe sectionliste.
Il y a deux blocs qui répondent à ce critère, il y a donc plusieurs réponse mais tu ne prend que la première.
Il te ressort donc toujours le 1 du la premiere réponse.

Il faudrait que tu parte de ton élément et que tu remonte jusqu’à son parent.

Sinon tu ne pourrais analyser ta valeur "coursX-Y" pour en extraire le X.
pour vous répondre, le fichier html, ce génère en dynamique (append).
puisque le but c'est que l'utilisateur crée autant de section que possible, et dans chaque section il crée autant de cours que possible aussi.
et moi je dois récupérer tout ça, et savoir quel cours appartient a quelle section ^^'

Et oui _laurent, il me toujours que le premier span, voila pourquoi j'ai poster le problème.
Merci, c'est ok. j'ai trouvé

var resultat= [];
$(".trait_cours").each(function(){
    var self = $(this);
    var curent = self.parents('li.sectionliste');
    resultat.push(self.text() + ";" + curent.find('span:first').text());
});
var resultat = resultat.join('|');