2016-10-04 4 views
-3

나를 도와 줄 수 있습니까? 난 코드 JS와 함께 todolist JS 나는이 언어에 begginer이야, 내 작업을 확인하고 추가했지만 버튼을 도청 작업을 완료하기 위해 버튼을 만들 때 추가 작업이 좋아, 삭제됩니다 역시 괜찮 았지만 작업이 끝나면 작업을 완료 할 수 없습니다.Todo 목록 문제

오류가 발생하면 내 버튼 을 삭제하거나을 입력하십시오.

catch되지 않은 형식 오류 : 부동산의 'innerHTML을'설정할 수 없습니다 널의 (20 : 43 : 32 : 155 | 오류, 자바 스크립트) 으로 public_html/todo.js에서 65

자원을로드하지 못했습니다 : 순 :: ERR_EMPTY_RESPONSE 으로 public_html/TODO에서 | (에러, 자바 스크립트 399 : 44 : 46 20) : | (20 : 43 : 32 252 이상, 네트워크)

처리되지 않는 형식 오류 http://localhost:8383/favicon.ico에서 널의 속성 'innerHTML을'을 설정할 수 없다. js : 65

여기 내 코드는

입니다.
<!DOCTYPE html> 
    <html> 
    <head> 
    <title>TODO</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 
    <h1>TODOLIST</h1> 

    <input id="task"><button id="add">Add</button> 
    <hr> 

    <h2>todo</h2> 
    <ul id="todos"></ul> 
    <h2>done</h2> 
    <ul id="done"></ul> 

    <script src="todo.js"></script> 
    </body> 
    </html> 

JS :

function get_todos() { 
var todos = new Array; 
var todos_str = localStorage.getItem('todo'); 
if (todos_str !== null) { 
    todos = JSON.parse(todos_str); 
} 
return todos; 
} 

function get_dones(){ 
var dones = new Array; 
var dones_str = localStorage.getItem('done'); 
if (dones_str !== null){ 
    dones = JSON.parse(dones_str); 
} 
return dones; 
} 


function add() { 
var task = document.getElementById('task').value; 

var todos = get_todos(); 
todos.push(task); 
localStorage.setItem('todo', JSON.stringify(todos)); 

show(); 

return false; 
} 

function remove() { 
var id = this.getAttribute('id'); 
var todos = get_todos(); 
todos.splice(id, 1); 
localStorage.setItem('todo', JSON.stringify(todos)); 

show(); 

return false; 
} 

function show() { 
var todos = get_todos(); 
var dones = get_dones(); 


var html; 
for(var i=0; i<todos.length; i++) { 
    html += '<li>' + todos[i] + '<button class="remove" id="' + i + '">deletar</button> <button class="done" id="' + i + '">Feito</button></li>'; 
}; 

document.getElementById('todos').innerHTML = html; 

var html2; 
for(var i=0; i<dones.length; i++) { 
    html2 += '<li>' + dones[i] + '<button class="remove" id="' + i + '">deletar</button> <button class="done" id="' + i + '">Feito</button></li>'; 
}; 

document.getElementById('dones').innerHTML = html2; 

var buttons = document.getElementsByClassName('remove'); 
for (var i=0; i < buttons.length; i++) { 
    buttons[i].addEventListener('click', remove); 
}; 

    var buttons2 = document.getElementsByClassName('done'); 
for (var i=0; i < buttons2.length; i++) { 
    buttons2[i].addEventListener('click', done); 
}; 
} 

function done(){ 
var id = this.getAttribute('id'); 
var done = get_dones(); 
localStorage.setItem('done', JSON.stringify(dones)); 

show(); 

return false; 
} 

document.getElementById('add').addEventListener('click', add); 
show(); 
+0

안녕하세요. 실제 오류가 무엇인지 Google에 알려주는 것이 좋습니다. 브라우저 콘솔에서 확인하십시오. 일어날 것으로 예상되는 것과 실제로 일어나고있는 것을 저희에게 알려주십시오. 우리가 당신을 도울 수있게하십시오. – patricksweeney

+0

무엇이 오류입니까? 콘솔에있는 게있어? – Alfabravo

+0

"모든 것이 도청되었습니다"는 문제 또는 예상되는 동작에 대한 명확한 설명이 아닙니다. –

답변

0

함수

show() 

show() 기능 내에서 }

제대로 닫혀 있지 않습니다 당신이 :

document.getElementById('dones').innerHTML = html; 

그러나 HTML에는 ID가 "dones"인 요소가 없습니다.

은 다음, 함수에

function done(){ 
var id = this.getAttribute('id'); 
var done = get_dones(); 
localStorage.setItem('done', JSON.stringify(dones)); 

귀하의 변수가 "완료"라는, 그러나 당신은 "dones"를 캐릭터 라인 화하기 위해 노력하고 있습니다.

+0

도움을 주셔서 감사합니다, 내 HTML은 doone에서 dones로 옮기기를 원하기 때문에 dones의 어떤 요소도 가지고 있지 않습니다. 어떻게해야할지 모르겠군요. – George