如何使用javascript在一些定义的时间延迟后动态更改<p>标签数据?</p>

时间:2012-02-18 12:50:27

标签: javascript time tags delay paragraph

我想在定义的时间延迟后使用javascript仅更改<p>标记内容。例如

<p>messages</p>

应根据编号而改变。新消息来了。正如

<p>messages(1)</p>
<p>messages(2)</p>

3 个答案:

答案 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代码的结构。