Динамическая работа со списком в jQuery
Есть текстовое поле и кнопка, при нажатии на которую формируется <li>
, в котором должен быть checkbox
, text (тот, что ввели) и кнопка Del. При клике на checkbox
- нужно делать операции с текстом - изм. цвет, толщину и т.п. Кнопка Del должна удалять весь <li>
целиком. Основная проблема у меня - это доступ к этим внутренним элементам в <li>
:
$("#btnAdd").on('click', (e) => {
let check = document.createElement('input')
check.type = 'checkbox'
check.style.width = 15 + 'px'
check.style.height = 15 + 'px'
$( "input:checkbox" ).on("change", function(e) {
if ($(this).is(':checked'))
input_text.style.color = 'red'
else
input_text.style.color = 'black'
});
let input_text = document.createElement('input')
input_text.type = 'text'
input_text.value = $("#input_todo").val()
let btn_del = document.createElement('input')
btn_del.type = 'button'
btn_del.value = 'Del'
btn_del.onclick = () => {
}
let li = document.createElement('li');
let newLi = $(li).append(check).append(input_text).append(btn_del)
$("#ul_list").append(newLi);
$("#input_todo").val('')
})
Проблема в том, что при создании нескольких элементов <li>
, при отметке чекбокса - стили применяются не в этом <li>
, а во всех, что идут ниже. То же самое - если убираю check. По удалению целого <li>
при нажатии Del пробовал разные варианты - ничего не получилось. Буду признателен за помощь!