11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous Smiley biggrin
J'ai une page avec plusieurs tableaux et pour faciliter leurs gestions, j'ai créé 2 boutons servant à réduire et ouvrir tous les tableaux.
Tous marche plutôt bien sauf que je n'arrive pas à changer le texte qu'il y dans les balises <button>texte</button>.
Quand on clique sur "Réduire tout", tous les boutons devraient être initialisés avec le caractère "+" tandis que si on clique sur "Ouvrir tout", ils devraient être initialisée avec le caractère "-".
Voici mon code:

<button id="rt">Réduire tout</button>
<button id="ot">Ouvrir tout</button>

<div class="container">
     <button>-</button>
     <table></table>
</div>
...
<div class="container">
     <button>-</button>
     <table></table>
</div>


$('#rt').click(function(){
	$('.container').each(function(){
		$(this).addClass('noprint');
		$(this).children('table').css('display', 'none');
		$(this).children('button').html('+');
	});
});
	
$('#ot').click(function(){
	$('.container').each(function(){
		$(this).removeClass('noprint');
		$(this).children('table').css('display', 'table');
		$(this).children('button').html('-');
	});
});

Modifié par zombibiot (26 Oct 2017 - 11:55)
Salut

j'ai testé ton code et il fonctionne très bien SI jquery est chargé Smiley cligne

vérifie que jquery soit bien lancé
Oui pas de soucis pour afficher les tableaux, par contre, je n'arrive pas à changer la valeur de mes boutons.
As-tu vérifié en cliquant sur "réduire tout" ou "ouvrir tout" que la valeur de tes boutons changée ?
Si oui, cela est bizarre car j'ai bien JQUERY de charger vu que mes tableaux se réduisent et s'ouvrent Smiley rolleyes
:)

j'ai posé ton code html dans un fiddle avec le js j'ai activé le jquery et tout est nickel Smiley lol

Donc ton problème est ailleurs.
C'est BON pchlj !
Effectivement, le code marche niquel Smiley lol
Quand j'ai copié mon code pour le montre en ligne, je l'ai simplifié et je n'ai pas vu que mes balises <button> étaient dans des balises <h2> du coup, il fallait rajouter une fonction children() ! Smiley hum

-> $(this).children('h2').children('button').html('+'); <-

Merci de ton aide Smiley cligne