11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous !
J'ai un soucis avec le code suivant:

html:

<tr>
   <td>1</td>
   <td class="parfor">RP001</td>
</tr>
<tr>
   <td>2</td>
   <td class="parfor">NB002</td>
</tr>
<tr>
   <td>3</td>
   <td class="parfor">FC003</td>
</tr>


jquery:

$(function() {
	if($('.parfor').substr(0, 2) == 'RP') {
		$('.parfor').css('background-color', 'yellow');
	}
	else if($('.parfor').substr(0, 2) == 'NB') {
		$('.parfor').css('background-color', 'gray');
	}
	else {
		$('.parfor').css('background-color', 'green');
	}
});


Mon but étant de colorer les cellules <td> par rapport à leur contenu mais je n'ai aucun changement Smiley decu

Merci de vos futurs solutions Smiley smile
Modifié par zombibiot (28 Sep 2017 - 16:38)
Bonjour

Normal, tu ne tapes pas l'élément correctement Smiley cligne

$('.parfor').substr(0, 2) == 'RP'

ne correspond pas au contenu de l'élément.
Le contenu tu l'aura ainsi :
$('.parfor').text().substr(0, 2) == 'RP'
Modérateur
normal car $('.parfor') renvoie une liste d'élément...


$('.parfor').each(function(){
  var firstChars = $(this).text().substr(0, 2);
  if (firstChars == 'RP'){
    $(this).css('background-color', 'yellow');
  }
  else if () {
    … etc.
  }
});

Meilleure solution
merci kustolovic, le code marche nikel Smiley cligne
donc si j'ai bien compris, tu utilise la fonction each() pour parcourir tous les éléments d'une classe puis tu stockes dans une variable l'élément courant et tu finis par tes conditions ?