Новое в кодировании, имеющем проблемы с моим JS-кодом. Он работал в течение последних нескольких дней, а затем я не уверен, что произошло, теперь он дал мне ошибку на линии (17) todos.push (задача); Ошибка говорит: «todos.push() не является изюминкой». Любая помощь будет принята с благодарностью.Javascript ToDo list Добавить элемент
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>
В 'get_todos()' , вы возвращаете объект JSON ('todos = JSON.parse (todos_str);'), а 'push' - это метод' prototype.Array' –
Попробуйте использовать 'console.log (todos);' после строки 16 'var todos = get_todos();' чтобы увидеть, что ваша функция return, также вы должны, вероятно, перенести функции 'localStorage' в' try catch', у всех браузеров это нет, и настройки конфиденциальности отключают его в некоторых случаях, поэтому вы можете получить неопределенный результат и отличаться от нуля, следовательно, почему ваш код сбой – javiercf
спасибо за консультацию, только что начал работать снова, ничего не изменил. – Kris