Ответ 1
jQuery Data - это другое понятие, чем HTML. removeData не для удаления содержимого элемента, это для удаления элементов данных, которые вы ранее хранили.
Просто сделай
divToUpdate.html("");
или
divToUpdate.empty();
Я пытаюсь очистить div innerHTML перед тем, как перезагрузить его. Я попробовал removeData(), но после этого вызова, когда я пытаюсь добавить данные, я ничего не получаю от следующей строки после удаления, тогда как если я удалю removeData(), это снова будет отлично. Я просто хочу очистить любой предыдущий контент в этом div, прежде чем я его повторно запишу.
divToUpdate.removeData(); //clean out any existing innerHTML div content first
divToUpdate.html(data);
Похоже, что он никогда не попадает в мой divToUpdate.html(данные) по какой-то причине после того, как он вызывает этот removeData();
jQuery Data - это другое понятие, чем HTML. removeData не для удаления содержимого элемента, это для удаления элементов данных, которые вы ранее хранили.
Просто сделай
divToUpdate.html("");
или
divToUpdate.empty();
Чтобы удалить все дочерние элементы из вашего div:
$('#mysweetdiv').empty();
.removeData()
и соответствующая функция .data()
используются для прикрепления данных за элементом, например, если вы хотите отметить, что в вашей базе данных указан конкретный элемент списка, относящийся к идентификатору пользователя 25:
var $li = $('<li>Joe</li>').data('id', 25);
$('div').html('');
Но почему вы очищаете, divToUpdate.html(data);
полностью заменит старый HTML.
divToUpdate.innerHTML = "";
вы можете просто перезаписать его, не удаляя предыдущие данные
var $div = $('#desiredDiv');
$div.contents().remove();
$div.html('<p>This is new HTML.</p>');
Это должно работать нормально.