【问题标题】:Why can't I use innerHTML property on variables?为什么我不能在变量上使用 innerHTML 属性?
【发布时间】:2016-04-25 10:58:38
【问题描述】:

假设我有以下 html: div id="my_div"><span>no no</span></div>。我想用 yes yes 更改文本 no no。我可以这样做:

document.getElementById("my_div").getElementsByTagName('span')[0].innerHTML = "yes yes"

但如果我想使用如下变量:

var x = document.getElementById("my_div").getElementsByTagName('span')[0].innerHTML;    
    x = "yes yes";

现在文本 no no 没有改变。为什么?

【问题讨论】:

  • 您检查浏览器控制台是否有错误?
  • @NewToJS 是的,我已经在浏览器控制台中进行了检查。它没有给出任何错误。
  • 为什么你可以完全改变你的问题?您知道其他人只需单击您帖子下的edited 即可查看原始问题...这会使gurvinder372 的答案在gurvinder372 帖子回答您的原始问题时看起来是错误的。我已经标记了这个问题。
  • @NewToJS 我认为这个问题不清楚,因为它被否决了。所以我用一个简单的例子说明了这一点。
  • 请不要编辑您的问题,以免现有答案无效。而是提出一个新问题。

标签: javascript html innerhtml


【解决方案1】:

要更改值,您需要为对象分配一个新值,同时为引用本身分配一个新值。

试试这个

var x = document.getElementById("my_div").getElementsByTagName('span')[0];    
x.innerHTML = "yes yes";

【讨论】:

  • x 不是一个对象吗?
  • 它是您(首先)分配对象引用值的引用,然后您将其替换为新值。
  • = 不是在 javascript 中充当赋值运算符吗?
  • @gurvinder372 留意任何反对票,出于某种原因,user31782 更改了问题,使您的答案看起来不正确。出于这个原因,我已经标记了这个问题。我希望从代表 343 的人那里得到更好的结果
  • @NewToJS 是的,注意到了.. 谢谢你告诉我。
猜你喜欢
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
  • 2022-07-19
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多