【发布时间】:2020-12-02 12:47:51
【问题描述】:
我想通过单击 JavaScript 中的按钮从 Firebase 实时数据库中删除该项目。我怎样才能删除它?我收到此错误:app.js:61 Uncaught ReferenceError: key is not defined in console.
我已经在 jsfiddle 上上传了我的完整代码。我的错在哪里?
https://jsfiddle.net/waqasumer/z7wt6d0e/7/
var main = document.getElementById("main-section");
function saveData() {
var todoItem = document.getElementById("todo-item");
if (todoItem.value === "") {
alert("Please enter task");
} else {
var key = firebase.database().ref('tasks').push().key;
var tasks = {
todoItem: todoItem.value,
key: key
}
firebase.database().ref('tasks/' + key).set(tasks);
document.getElementById("todo-item").value = "";
}
}
function getData() {
firebase.database().ref('tasks').on('child_added', function (data) {
var item = data.val().todoItem;
for (var i = 0; i <= item.length; i++) {
var row = document.createElement("div");
row.setAttribute("class", "row");
var col1 = document.createElement("div");
col1.setAttribute("class", "col text");
var task = document.createTextNode(item);
col1.appendChild(task);
row.appendChild(col1);
var col2 = document.createElement("div");
col2.setAttribute("class", "col");
var editBtn = document.createElement("button");
editBtn.setAttribute("class", "btn btn-success btn-circle btn-sm fa fa-pencil-square-o");
editBtn.setAttribute("onclick", "editTodo(this)");
col2.appendChild(editBtn);
row.appendChild(col2);
var col3 = document.createElement("div");
col3.setAttribute("class", "col");
var deleteBtn = document.createElement("button");
deleteBtn.setAttribute("class", "btn btn-primary btn-circle btn-sm btn-danger fa fa-remove");
deleteBtn.setAttribute("onclick", "deleteTodo(this)");
col3.appendChild(deleteBtn);
row.appendChild(col3);
main.appendChild(row);
break;
}
})
}
getData();
function deleteTodo(e) {
firebase.database().ref('tasks').child(key).remove();
}
【问题讨论】:
标签: javascript html css firebase firebase-realtime-database