我想在定义的时间延迟后使用javascript仅更改<p>
标记内容。例如
<p>messages</p>
应根据编号而改变。新消息来了。正如
<p>messages(1)</p>
<p>messages(2)</p>
答案 0 :(得分:8)
将您的<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
文档。
答案 1 :(得分:3)
$(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真棒! :)
答案 2 :(得分:2)
您可以使用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
仅用于举例。检索pNode的方式取决于html代码的结构。