2016-10-04 6 views
-3

誰かが私を助けることができますか?私はJSと簡単なtodolistをコードしようとしています私はこの言語で begginerです、私のタスクはOKを追加していましたが、私はボタンを盗んだタスクを完了するためのボタンを作成したとき、しかし、私はタスクが完了したら、私は私の行動をすることはできません。Todoリスト問題

これらのエラーを受信するをマイボタンを押したときに受信しました。

キャッチされない例外TypeError:プロパティ 'innerHTMLプロパティ' を設定することはできませんヌルの(20:43:32:155 |エラー、ジャバスクリプト) のpublic_html/todo.jsで:65

リソースの読み込みに失敗しました:ネット:: ERR_EMPTY_RESPONSE public_htmlの/ TODOに|(エラー、ジャバスクリプト399:44:46 20) :|(20:43:32 252エラー、ネットワーク)

キャッチされない例外TypeError http://localhost:8383/favicon.icoではNULLプロパティ 'の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

ようこそ。実際のエラーの内容をブラウザコンソールで確認すると良いでしょう。起こると予想されること、実際に起こっていることを教えてください。私たちがあなたを助けてくれるようにしましょう。 – 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 didntは、私がtodoからdonesに移りたいので、donesの要素を持っていないし、私はそれをどうやって行うのか分からない。 – George