Как я могу получить дату/время, когда "DOMSubtreeModified"
/или когда мой динамический элемент div изменился. В основном всякий раз, когда изменяется содержание моего DIV элемента, я просто хотел бы напечатать штамп времени из time
& mo/day/year
получить/определить дату и время изменения содержимого элемента div
ответ
Bind слушателя DOMSubtreeModified событий к элементу.
var element = document.getElementById('foo');
element.addEventListener('DOMSubtreeModified', function() {
var date = new Date();
var month = date.getMonth() + 1;
var day = date.getDate();
var year = date.getFullYear();
var time = date.toLocaleTimeString();
var formattedDate = month + '/' + day + '/' + year;
console.log(time); // 7:01:21 PM
console.log(formattedDate); // 3/15/2016
}, false);
// change something on element
setTimeout(function() {
element.dataset.foo = 'bar';
}, 3000);
JSFiddle Демо: https://jsfiddle.net/n1mmdayk/3/
Спасибо, это выглядит отлично, но похоже, что он не работает с изменением, чтобы получить имя класса. Ошибка на элементе element.addEventListener. https://jsfiddle.net/n1mmdayk/5/ –
@MattDamon использует 'querySelector' https://jsfiddle.net/n1mmdayk/6/, иначе' getElementsByClassName' возвращает массив, поэтому вам придется проходить через каждый элемент, подобный этому https://jsfiddle.net/n1mmdayk/9/. Существуют и другие способы связывания таких событий, как использование делегирования событий –
Спасибо за информацию | ваша функция тайм-аута не работает над тестированием –
https://developer.mozilla.org/en-US/docs/Web/Events/DOMSubtreeModified любые проблемы, связанные с этим? –
О, ничего себе, это потрясающе, но я не хочу этого в заголовке. Но позвольте мне попробовать эту логику –
Вы можете заметить, что [* DOMSubtreeModified * устарел] (https://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMSubtreeModified), поэтому вы можете ожидать он должен быть удален или заменен в некоторых будущих спецификациях или стандартах. Это также багги в IE 9 и отсутствует в Opera. – RobG