J'ai plusieurs cases à cocher d'entrée enveloppées dans les étiquettes p <p><input type="checkbox" /></p>
. J'essaie de changer le background-color
de la balise P lorsque la case à cocher est :checked
Le problème que j'ai est que toutes les couleurs d'arrière-plan <p> </p>
changent en même temps. Je veux seulement que l'étiquette de paragraphe actuelle background-color
change.Sélectionnez un élément à la fois à l'aide de jquery
HTML
<p>
<input type="checkbox" />
<label>Animals & Pets</label>
</p>
<p>
<input type="checkbox" />
<label>Business & Finance</label>
</p>
<p>
<input type="checkbox" />
<label>Auto's & Cycles</label>
</p>
CSS
.highlight { background-color: #DDD; }
jQuery
$(document).ready(function() {
$('input').click(function() {
if ($(this).is(':checked')) {
$('p').addClass('highlight')
} else {
$('p').removeClass('highlight')
}
});
});
recommande également la mise en cache '$ (this)' pour une petite pointe de performance propre. – Brombomb
@Brombomb - Il n'est utilisé qu'une seule fois, donc aucune mise en cache n'est nécessaire. –
Merci Joseph. J'aime la concision et la clarté de ce code le meilleur. Une chose que j'ai omis de mentionner était ce que si je place l'entrée à checked = "checked". Comment puis-je garder le point culminant. – Eric