#javascript
#javascript
Вопрос:
Я создал флажок и применил эти атрибуты
let box = document.createElement('input');
box.setAttribute("type","checkbox");
box.setAttribute("id","box");
box.setAttribute("onclick","checkBox(this)");
Это функция
function checkBox(para2){
let condition = box.checked;
if (condition === true) {
para2.parentNode.style.opacity = '0.5'
para2.parentNode.style.textDecoration = "line-through"
}
if (condition === false) {
para2.parentNode.style.opacity = "1";
para2.parentNode.style.textDecoration = "none";
}
}
Когда я нажимаю на первый флажок, стиль работает. Но когда я нажимаю на других дочерних элементов, это не работает.
Комментарии:
1. Что именно не работает?
2. стиль не действует на других детей
3. Можете ли вы предоставить код с дочерними элементами?
4. Это мой HTML-код <идентификатор div=»контейнер»> <идентификатор ul=»список»> </ul> </div>
5. Не могли бы вы, пожалуйста, поместить код в свой вопрос, чтобы он был немного более понятным?
Ответ №1:
В вашей функции флажка,
let condition = box.checked;
В этой строке специально проверяется, установлен ли флажок «box». Поскольку у вас установлено несколько флажков, я полагаю, что у вас могут быть box2, box3 и т.д.
В качестве решения вы можете ввести атрибут «name» в свои флажки и использовать селектор запросов, чтобы определить, какие из них отмечены.
let condition = document.querySelectorAll('input[name="color"]');
condition.forEach((cb) => {
if (cb.checked === true) {
// your code
} else {
// your code
}
});
Примечание: может быть много других возможных способов сделать это. Это то, что пришло мне в голову прямо сейчас