【问题标题】:innerHTML not working in IE 9 but working fine in FirefoxinnerHTML 在 IE 9 中不工作,但在 Firefox 中工作正常
【发布时间】:2011-07-12 16:59:29
【问题描述】:
<script>
function add(memid) {
var likedcount=document.getElementsByName("liked"+memid);
for (var i = 0; i < likedcount.length; i++)
  {
likedcount[i].innerHTML = parseInt(likedcount[i].innerHTML)+1;
  }
 }

</script>

<b name="liked123">5</b>
<b name="liked123">5</b>

<b name="liked123">5</b>

<input type="button" onclick="add(123);" value="add">

上述方法适用于 FF,但由于某种原因 IE 不适用?

【问题讨论】:

  • 你在什么上使用innerHTML? (比如,什么元素?)
  • 在这种情况下,您需要确切了解 innerHTML 是什么。可能它与您的 parseInt 略有不同。或者 getElementsByName 可能返回不同的结果。听起来您应该在询问我们之前进行一些基本的调试和信息收集。您至少可以在其中放置一些断点并查看变量的状态或放置警报以查看事物处于什么状态。
  • 元素是50
  • 请尝试使用 innerText 而不是 innerHTML 看看会发生什么。
  • 在 IE 中会发生什么?你有错误吗?

标签: javascript internet-explorer-9 innerhtml


【解决方案1】:

由于标签没有定义“名称”属性,这将不起作用。 Microsoft 声明不支持 name 属性的标签(即属性是“expando”)不会从 getElementsByName 返回。

【讨论】:

  • 那我应该用什么来代替呢?
  • 当前名称='liked123'的所有项目是否都分组在一个容器内?然后你可以抓取容器(例如通过 id)并对其所有 标签进行操作。
猜你喜欢
  • 2013-02-16
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 1970-01-01
  • 2013-02-16
  • 2015-02-12
相关资源
最近更新 更多