Как я могу изменить данные тега динамически после некоторой определенной задержки с использованием JavaScript?
-
27-10-2019 - |
Вопрос
Я хочу только изменить <p>
Содержание тегов с использованием JavaScript после определенной задержки времени. Например
<p>messages</p>
должен измениться в зависимости от нет. новых сообщений пришли. В качестве
<p>messages(1)</p>
<p>messages(2)</p>
Решение
Написать свой <p>
в качестве:
<p class="messages">messages</p>
Ваш JavaScript:
function updateMessages() {
var ps = document.getElementsByClassName("messages");
for(var i = 0, len = ps.length; i < len; i++) {
ps[i].innerHTML = "messages (" + messageCount + ")";
}
}
setTimeout(updateMessages, 1000);
Где 1000
это количество миллисекундов, чтобы задержать.
Или если вы хотите периодически делать это каждый 15 секунды, вы можете использовать setInterval
:
setInterval(updateMessages, 15000);
ОБНОВИТЬ:
Я вижу ваш комментарий выше:
Новые сообщения извлекаются из базы данных с использованием функции JSP, которая проверяет базу данных для новых сообщений
В этом случае я понимаю, что вы хотите периодически получать этот URL -адрес? Если вы уже используете фреймворк JavaScript, я предлагаю вам посмотреть их AJAX
документация.
Другие советы
$(document).ready({
function updatePara() {
$('p').html('Content to set in para');
}
});
setTimeout(updatePara, no.of milisecond to delay);
JQuery сделает манипуляции DOM намного простыми :) Приведенный выше код изменяет содержание всего абзаца, так что лучше дать желаемый пункт <p></p>
Некоторое имя вызова затем отфильтруйте пара $('p.classname').html('your content')
ИЛИ ЖЕ $('.classname').html('Your content')
jQuery это потрясающе !!! :)
Вы можете использовать функцию SetTimeout:
var delay = 1000; // 1 second
setTimeout(function() {
var pNodes = document.getElementsByTagName('p');
for (var i=0, length=pNodes.length; i < length; i++) {
pNodes[i].innerHTML = pNodes[i].innerHTML+"("+ (i+1) +")";
}
}, delay);
getElementsByTagName
используется, например. Способ извлечения Pnodes зависит от структуры вашего HTML -кода.