You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用变量设置backgroundColor不生效?请解析原因

为什么你的div.style.prop写法不生效?

这个问题其实是JavaScript对象属性访问方式的典型坑点,我来给你掰扯清楚:

当你用.操作符去访问对象的属性时,JavaScript会把.后面的名字直接当作固定的属性名,而不是去读取变量里的值。举个例子,你写div.style.prop = 'red'的时候,浏览器其实是在给div.style这个对象新增一个叫prop的属性,值设为'red'——这完全不是你想要的设置backgroundColor的操作!

那怎么用变量来动态设置属性呢?得用方括号语法。方括号里可以放变量,JavaScript会先解析变量的内容,再去访问对应的属性。修改后的代码应该是这样:

var div = document.getElementById('test')
var prop = 'backgroundColor'
div.innerHTML = 'This is some text'
div.style[prop] = 'red' // 这样就会正确读取prop变量里的'backgroundColor',设置背景色为红色

简单总结一下:

  • 点语法适合你明确知道属性名的时候用,比如div.style.backgroundColor = 'red'
  • 方括号语法适合动态属性名的场景,尤其是属性名存在变量里的时候

内容的提问来源于stack exchange,提问作者b Tech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:36:49