У меня есть флажки с несколькими входами, завернутые в теги p <p><input type="checkbox" /></p>
. Я пытаюсь изменить background-color
тега P, когда флажок установлен :checked
Проблема, с которой я столкнулся, заключается в том, что все фоновые цвета тегов <p> </p>
меняются в одно и то же время. Я хочу, чтобы текущий тег абзаца background-color
изменился.Выберите один элемент за раз, используя 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')
}
});
});
Также рекомендуем кэширование '$ (это)' для небольшой, но чистый наконечник производительности. – Brombomb
@Brombomb - Он используется только один раз, поэтому никакого кэширования не требуется. –
Спасибо, Джозеф. Мне нравится краткость и ясность этого кода. Одна вещь, о которой я не упоминал, - это то, что если я установил вход для checked = "checked". Как сохранить подсветку. – Eric