#javascript #html
#javascript #HTML
Вопрос:
Я создал флажок с помощью javascript, и я пытаюсь изменить цвет после нажатия флажка, и если кто-то снимет флажок, он вернется к предыдущему состоянию, то есть в исходном виде, и я создал флажок динамическим способом с помощью javascript, и вот код, который я пытался создать флажок
<div id="checklist"></div>
и вот код javascript
const checkboxArray = [];
const checkboxList = ['1','2','3]
checkboxList.forEach((checkboxes) => {
const checklist = document.getElementById("checklist");
checklist.style.display = "inline-block";
checklist.style.alignItems = "center";
checklist.style.flexDirection = "row";
const inputCheckbox = document.createElement("input");
inputCheckbox.type = "checkbox";
inputCheckbox.name = "checklist";
inputCheckbox.id = checkboxes;
let label = document.createElement("label");
label.style.color = "#333333";
inputCheckbox.style.backgroundColor = "#219653 !important";
label.style.paddingTop = "35px";
let text = document.createTextNode(checkboxes);
label.htmlFor = checkboxes;
label.appendChild(text);
checklist.appendChild(inputCheckbox);
checklist.appendChild(label);
checklist.appendChild(document.createElement("br"));
checkboxArray.push(inputCheckbox.id);
});
и я также пытаюсь изменить цвет, когда кто-то нажимает кнопку «Выбрать все», и вот код для этого
Выберите
все
, и вот функция
async function toggle(source) {
var checkboxes = document.querySelectorAll('input[type="checkbox"]');
console.log(checkboxes);
const checklistResponse = [];
for (var i = 0; i < checkboxes.length; i ) {
if (checkboxes[i] != source) checkboxes[i].checked = source.checked;
}
for (var i = 0; i < checkboxes.length; i ) {
if (checkboxes[i] != source) checkboxes[i].checked = false;
}
document.getElementById("selectAll").checked = false;
}
Комментарии:
1. Вы могли
:checked
бы использовать псевдокласс css для достижения своей цели2. Почему это
toggle
асинхронно? Безawait
этого это не имеет смысла… Кроме того, вам не хватает цитаты в объявленииcheckboxList
. Это опечатка?3. @FZs я должен сделать запрос api, поэтому я использую async
4. @Kilian я использовал, но безуспешно
Ответ №1:
Что-то вроде этого
function changeColor(id, color){
document.getElementById(id).style.backgroundColor = color;
}
function checked(id){
if(document.getElementById(id).checked == true){
changeColor(id, blue);
var v = 100;
}else if(document.getElementById('kind').checked == false){
//other code
};};
Вы должны поместить идентификатор в кавычки, а цвет — в кавычки