我想从HTML输出中的引用中删除一个选定的子项。
密钥是聊天消息或帖子。
现在我想,用户可以使用按钮删除所选消息/帖子。
我可以删除所有,但不完全是所选的孩子。
结果和内容来自" 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();
});
});
});
答案 0 :(得分:0)
您可以做一些事情。首先,当id
每个deleteThis
应该是唯一的时,您似乎会在id
.delete
处拥有多个按钮。因此,您可能希望将点击处理程序添加到snapshot.forEach
。其次,正如其他人提到的那样,你应该使用<button class='delete' data-key='" + newPost.key + "'> X </button>
来迭代孩子们。最后,在创建按钮时,可以将帖子的键添加为数据属性:
$('.delete').on('click', function(){
var id = "user/chat/" + this.dataset.key;
firebase.database().ref(id).remove();
});
然后在您的点击处理程序中,您可以使用该键定位该特定帖子:
$this->request->query('date');