8

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

<p>messages</p>

应该根据编号改变。新消息来了。作为

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

3 回答 3

10

写你<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文档。

于 2012-02-18T12:56:43.290 回答
3
$(document).ready({
 function updatePara() {        
      $('p').html('Content to set in para');
    }
 });

setTimeout(updatePara, no.of milisecond to delay);

jQuery 使 dom 操作变得更加容易 :) 上面的代码更改了所有段落的内容,所以最好给所需的 paragragh<p></p>一些调用名称,然后过滤 para 以使用这些名称更新,即$('p.classname').html('your content')或者$('.classname').html('Your content')
jQuery 太棒了!:)

于 2012-02-18T13:11:04.467 回答
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 代码的结构。

于 2012-02-18T12:59:43.047 回答