我的程序需要用戶輸入一個字符串和複選框,並建立一個列表來顯示。 (基本檢查列表)每個列表元素由一個字符串變量和一個複選框輸入組成,但是如果說第三個將被勾選,我不能引用特定的複選框,因爲該方法中ID不是唯一的。我覺得好像有一個更好的方法。我是新來的StackOverflow,所以我道歉,如果代碼是太多了,少,混亂等我將如何引用剛剛在Javascript中創建的特定html元素並獲取其值?
相關代碼(IMO):
var taskArr= []; //String of tasks array
var compArr=[]; //comp = completed? task completion array, has bool
var isCompleted = 0;
document.getElementById('list').addEventListener('click',alternateValue);
function alternateValue(){
//Recheck all the actual clicked boxes and updates the array since the list members do not have a unique id. Another way?
alert("click works!");
var newChecks = document.getElementsByClass('');
//2nd alert, no alert.
alert(newChecks[0].checked);
compArr = [];
for(i = 0; i<newChecks.length;i++){
compArr.push(newChecks[i].checked);
}
}
function addTask(){
var check = document.getElementById('compInput').checked;
var task = document.getElementById('taskInput').value;
taskArr.push(task);
compArr.push(check);
alert(check);
//Check for correct value of.. the check
update();
}
function update(){
var tasks = '<ul>';
for(i =0; i< taskArr.length;i++){
if(compArr[i] == 0){
tasks = tasks.concat('<li>'+taskArr[i]+'<input type="checkbox" class="texts" placeholder="Done?"/></li>');
}
else{
tasks = tasks.concat('<li>'+taskArr[i]+'<input type="checkbox" class="texts" checked placeholder="Done?"/></li>');
}
}
tasks = tasks.concat('</ul>');
document.getElementById('list').innerHTML = tasks;
document.getElementById('comps').addEventListener('click',alternateValue);
}
我已經更新了我的答案對於純JavaScript方式 –