#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь удалить текстовые поля с флажками, как показано в jsFiddle. Однако, как вы можете видеть, один из флажков отмечен, но соответствующее ему текстовое поле существует. Может кто-нибудь помочь мне отредактировать это, чтобы скрыть соответствующие текстовые поля для уже проверенных элементов при загрузке?
Спасибо!
Ответ №1:
Комментарии:
1. С каких это пор два поиска DOM проще, чем один? 😛
2. Мне нравится ваш энтузиазм. Тем не менее, спасибо вам всем.
Ответ №2:
Попробуйте это: http://jsfiddle.net/FloydPink/NqKP9 /
$(document).ready(function() {
$('.check').each(function() {
$(this).prev().toggle(!$(this).is(':checked'));
});
$('.check').click(function() {
$(this).prev().toggle();
});
});
Ответ №3:
Ну вот. Поскольку вы уже нажали на dom для all .check, вы можете просто отфильтровать этот результат по тем, которые находятся в текущем :checked
состоянии, и скрыть предыдущий элемент.
$(document).ready(function() {
$('.check').click(function() {
$(this).prev().toggle();
}).filter(':checked').each(function(){
$(this).prev().hide();
});
});
Ответ №4:
Вы устанавливаете флажок с checked
атрибутом, но у вас нет кода, который ищет флажки, которые были установлены таким образом.
$('.check').each(function() {
if ($(this).is(':checked'))
$(this).prev('.date').toggle();
});
Ответ №5:
Вот обновленная скрипка
$(document).ready(function() {
$('.check').click(function() {
$(this).prev().toggle();
});
// toggle already checked boxes
$(':checked').each(function() {
$(this).prev().toggle();
})
});
Оптимизированная версия:http://jsfiddle.net/jdbmK/6 /
$(document).ready(function() {
function toggle() {
$(this).prev().toggle();
}
$('.check').click(toggle);
// toggle already checked boxes
$(':checked').each(toggle);
});