$('#'+snapshot.key)
получает правильный элемент в HTML, но метод change()
jQuery не делает то, что вы думаете, что он делает.Прочитайте связанную документацию, чтобы узнать, что она на самом деле делает.
Если вы подумаете, если на мгновение это имеет смысл: как встроенный метод из jQuery узнает, как обновить вашу HTML-структуру?
Только ваш код знает, какой HTML он создал для данных в снимке.Вам нужно будет скопировать (частично) ваш код, который создает HTML-код в обратном вызове child_added
, в обратный вызов child_changed
.
Примерно так:
database.on('child_changed', function(snapshot){
var data = snapshot.val();
var content = '<tr id="'+snapshot.key+'">';
content += '<td>' + data.CustomerName + '</td>';//column2
content += '<td>' + data.TimeEffected + '</td>'; //column1
content += '<td>' + data.DateEffected + '</td>'; //column1
content += '<td>' + data.Successful + '</td>'; //column1
content += '</tr>';
$('#'+snapshot.key).replaceWith(content)
});