javascript - 将 style.background 设置为 var 不起作用

标签 javascript javascript-objects

我修改了这个工作 Javascript code通过将 style.background 设置为 var "x"并且它不再切换。问题出在哪里?

<script>
var myVar = setInterval(setColor, 300);
 
function setColor() {
/* This commented-out code works.
  var x = document.body;
  x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow";
  */
  var x = document.body.style.backgroundColor;  // not working
  x = x == "yellow" ? "pink" : "yellow";
}
</script>

最佳答案

那是因为在原始代码中:

function setColor() {
  var x = document.body;
  x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow";
}

x 是 document.body 的引用,但是,在您的代码中,当您这样做时:

x = x == "yellow" ? "pink" : "yellow";

x 不再等于 document.body 的引用,现在它是一个字符串,粉红色或黄色。所以,x不会改变html,因为它只是一个字符串变量。

如果您希望代码正常工作,您需要将此代码添加到 x 声明后面。

document.body.style.backgroundColor = x

关于javascript - 将 style.background 设置为 var 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69846836/

相关文章:

javascript - 为什么我的毫秒在 js 秒表中看起来不对

javascript - initNumToRender 如何在 FlatList 上工作?

javascript - 当没有数据时 document.write 停止工作

Javascript:从嵌套键值对中读取键/值

JavaScript 函数作为对象

javascript - 将 Json 对象转换为 SQL 表

javascript - 如何在基于触摸屏的应用程序上实现划痕功能

javascript使用delete还是依赖垃圾回收?

Javascript:绑定(bind)/取消绑定(bind)函数行为

javascript - 在扩展现代 Javascript 项目时,对象数量与有效负载哪个更重要?