jQuery().each(). Выбор одного элемента, с разными ID/

318
18 июля 2017, 19:47

Доброе время суток! Есть форма, с 1 checkbox, 1 label , 1 input[text] в таком порядке, и всех по 3. (инпут текст скрыт, и выпадает в зависимости, от того выбран или нет чекбокс). С помощью .each перебираю, но немогу выбрать нужный инпут, выпадают или все, или тот который задам через .eq(); На codepen.io HTML форма и скрипт. Помогите пожалуйста разобраться.

jQuery(function(){
jQuery('form :checkbox').click(function(){
    jQuery(this).each(function(index, element){
        if (jQuery(this).prop('checked')){
            jQuery('input:text').show()
        }
        else {
            jQuery('input:text').hide()
        }
    }); 
});

});

https://codepen.io/masteine/pen/ZyZBqP

Answer 1

В событие onClick добавьте функционал поиска элемента input, соответствующего обрабатываемому checkbox:

// Определяем ID чекбокса:    
var cbId = $(this).attr("id").replace("_check","");
// Находим соответствующий input
var input = $("#" +cbId +"_input");

Исправленный код

Однако рекомендовал бы обернуть блоки в div'ы, тогда поиск соотвествующего инпута можно будет сделать элегантным:

 var input = $(this).closest("div").find("input:text");

Пример

READ ALSO
Фиксация слова при скроле страницы

Фиксация слова при скроле страницы

Подскажите пожалуйста как можно и с помощью чего фиксировать при скроле слово в блоке, относительно списка елементов, и задавать елементу...

284
Мне нужно сделать обработчик клика для елемента внутри iframe

Мне нужно сделать обработчик клика для елемента внутри iframe

Мне нужно сделать обработчик клика для елемента внутри iframeПробовал так, но ничего не работает

220
Отловить изменение содержимого div

Отловить изменение содержимого div

У меня есть div, содержимое которого может меняться различными способами: например, весь его контент может быть изменён через innerHTML, или могут...

320
Как связать чекбокс с вызовом метода? [дубликат]

Как связать чекбокс с вызовом метода? [дубликат]

На данный вопрос уже ответили:

283