簡體   English   中英

Javascript ToDo列表添加項

[英]Javascript ToDo list add item

我的JS代碼有新問題。 它工作了最近幾天,然后我不確定現在發生了什么,這使我在第(17)行上出現了一個錯誤todos.push(task); 錯誤顯示“ todos.push()不是功能。” 任何幫助將不勝感激。

 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 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 html = '<table>';
for(var i=0; i<todos.length; i++)
{
html += '<br><tr><strong>'+
'<input type="image" src="/Pictures/remove.png" class="remove"    id="' + i  +
'"></input>' + todos[i] + '</strong><input type="checkbox" name="cBox"   store="checkbox1"  id="isDone"><label for="cBox"</label></tr><br>';
};
html += '</table>';


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

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

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

我的HTML

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,   user-scalable=yes">
    </head>
    <body>
    <img id="mainImg"  src="\Pictures\mytodolist.jpg"
    <form>
    <div>
    <img  id="taskImg" src="\Pictures\tasks.jpg"
    <br>
    <br>
    <input  id="add" type="image" width='150' heigth='80'   src="\Pictures\addButton.png" ></input>
    <br>
    <input id="task">
    </div>
    <div id="todos"></div>

    <script src= "ToDo.js"></script>
    <link rel= "stylesheet" type= "text/css" href="todoStyle.css"/>
     </body>
    </html>

似乎在這里工作正常: http://codepen.io/ilanus/pen/xOXJXW : get_todos()您在get_todos()函數中聲明了一個Array ,然后將其返回,然后向其中添加項todos.push(task);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM