基本上我要做的是在js中创建一个创建的文本节点上创建一个按钮。然后找到spmet的值并从数据库中删除问题(spmet)。
但是我无法弄清楚如何正确引用它,并找到我想要删除的特定值。 (所以其他图片,当我按“x”时从数据库中删除该问题)
this is the the way to remove questions
var btn = document.createElement("BUTTON");
var btnText = document.createTextNode("x"); //create button
btn.appendChild(btnText);
tekst.appendChild(btn);
btn.id = "questionBtn";
//bytter enter som gir linjeskift til <br>
tekst.innerHTML = tekst.innerHTML.replace(/\n/g, '<br>');
chat.appendChild(bubble);
setTimeout(function(){
chat.classList.add('visible')
}, 1);
chat.scrollTop = chat.scrollHeight;
console.log(bubble);
// Function to remove the question on the button generated
tekst.onclick = function removeQ(){
window.alert("Knapp funker");
var ref = database.ref();
ref.child('spm')
.orderByChild('spmet')
.equalTo(spmet)
.once('value', function(snap) {
//remove the specific spmet parent
window.alert(snap.val());
});
document.getElementById("cont1").removeChild(bubble); // removes text from page
var spmRef = ??
spmRef.remove(); //can't reference properly
}
答案 0 :(得分:0)
为每个问题生成HTML元素时,请将该问题的ID保留为该HTML元素的属性:
ref.child("spm").on("child_added", function(snapshot) {
var div = document.createElement("div");
div.id = snapshot.key;
div.innerText = snapshot.child("spmet").val();
div.onclick = onSpmClick;
questionContainer.appendChild(div);
});
现在,当用户点击其中一个问题时,您可以从该div获取密钥并将其删除:
function onSpmClick(e) {
var key = e.target.id;
ref.child("spm").child(key).remove();
}