【问题标题】:Modifying innerHTML of an element created with innerHTML修改使用 innerHTML 创建的元素的 innerHTML
【发布时间】:2010-11-19 03:57:36
【问题描述】:

基本上,我有一个使用innerHTML 插入内容的div。插入的一段 HTML 是:

<p style="text-align:center;"><span class="bold" id="timer">00:00:00:0</span></p>

这是一个应该使用 setTimeout 递增的计时器。后来我调用下面的函数来修改定时器块:

document.getElementById("timer").innerHTML = output;

当使用 Firebug 或警报检查 innerHTML 属性时,span 元素的 innerHTML 正在递增(例如,它会显示“00:00:10:6”或“00:01:01:4”)。但是,该页面不反映更改;浏览器仍然显示 00:00:00:0。

我尝试将 span 直接放在页面上,而不是通过使用 innerHTML 修改 div,然后它才起作用。有没有办法让它与 div 上的 innerHTML 一起工作?

编辑:页面是 ----- 尝试使用 Firebug 或 Chrome 控制台检查以下内容:

document.getElementById('bunny-timer').innerHTML

编辑 2:已删除网址。

【问题讨论】:

  • 使用 FF 3.6 仅使用 innerHTML 对我来说效果很好

标签: javascript html dom


【解决方案1】:

在没有看到代码的情况下,我最好的猜测是您不小心创建了重复的 id,并且您看到的元素与您正在检查的元素不同。

【讨论】:

  • 根据 Firebug,我的页面上没有任何重复的 ID。
  • 我很抱歉,你是对的。 ID 的另一个元素被隐藏了,所以我看不到它。
【解决方案2】:

看看这个:http://plugins.jquery.com/project/timers。由于您已经大量使用 jQuery,为什么不使用它们的计时器功能呢?它们似乎制作精良。

【讨论】:

  • 谢谢,这看起来确实很有用,但我不认为计时器是真正的问题。我认为这与 DOM 无法识别 span 元素或其他东西有关。
  • 什么表明他在使用 jQuery?如果他完全使用它,getelementbyId 将是第一件事。我同意这是个好主意
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2011-03-02
  • 1970-01-01
  • 2016-06-25
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
相关资源
最近更新 更多