我想从HTML输出中的引用中删除一个选定的子项。Firebase从js循环中删除一个关键(web)
关键是聊天消息或帖子。
现在我想,用户可以用按钮删除选定的消息/帖子。
我可以删除所有,但不是完全选定的孩子。
结果和内容来自“for in”循环。
用Angular和AngularFire删除选定的(孩子)是没有问题的,但是我希望没有角度。
// get ref
var dbRef = firebase.database().ref().child("user/chat");
// child added
dbRef.on("child_added", function(snapshot) {
var newPost = snapshot.val();
// Loop/Results
for(var prop in newPost){
var xxx = "<li>
<p>"+newPost.content+"</p>
<button class='delete' id='deleteThis'> X </button>
</li>";
$(xxx).appendTo("#ul-result");
}
// delete Post with button from above
$('#deleteThis').on('click', function(){
// delete all posts --- work
// dbRef.remove();
// delete only this post --- ?
dbRef.child('?').remove();
});
});
});
你的问题很混乱,请你澄清一下。还要删除与该问题无关的代码。 – MarksCode
对不起。我真的很想理解你的代码,但不知道它应该如何工作。用'for in'迭代快照的孩子是**高度可疑的。更常见的模式是使用'snapshot.forEach(function(child){...')进行迭代。您的问题的解决方案分两步:* 1)*将帖子的关键字添加到您生成的HTML那个帖子,* 2)*当用户点击按钮然后删除正确的孩子时,读回密钥。 –
好吧,“可疑”:),它适用于我,但我认为你是对的,我会采取snapshot.forEach。但是为什么在迭代循环/重复中删除当前的键是没有问题的?无需设置并获取当前的关键值。我想保持简单/更少,但是当它不可能时,我设置并读回密钥。感谢你的可能性! – MikeCaine