簡體   English   中英

將 style.background 設置為 var 不起作用

[英]Setting style.background as a var doesn't work

我通過將 style.background 設置為 var "x" 修改了這個工作Javascript 代碼,它不再切換。 問題出在哪兒?

<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>

您將值分配給變量“x”,而不是document.body.style.backgroundColor ,不要將其存儲在變量中。

 <script> var myVar = setInterval(setColor, 300); function setColor() { var x = document.body.style.backgroundColor; // not working document.body.style.backgroundColor = 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM