还是关于背景色的问题:backgroundColor 怎么取不到?

时间:2023-02-04 21:36:09
我设置了
<td id="td1" style="background-color:#00FF00">adf</td>

然后我在该td点击事件中使用这样一个东西:

alert(td1.style.backgroundColor)

怎么出来的是一个空的字符串?
而对它赋值却可以哦,怎么回事?

14 个解决方案

#1


<table>
<tr>
<td id="td1" style="background-color:#00FF00" onclick="test()">adf</td>
</tr>
</table>
<SCRIPT LANGUAGE=javascript>
<!--
function test(){
alert(td1.style.backgroundColor)
}
//-->
</SCRIPT>

#2


no probelm

<table border=1><tr>
<td id="td1" style="background-color:#00FF00" onclick=alert(td1.style.backgroundColor)>adf</td>
</tr></table>

#3


咦,这样是可以哦,但是我在 css 文件中写这个就会取不到了

为什么?

#4


我一开始都没注意到这个问题,我以为css文件中写 style
和直接写style应该是一样的

#5


你是不是写在class中了?那正常呀,那时backgroundColor本来就是空嘛。

#6


<Style>
#td1{background-color:#00FF00}
</style>
<table border=1><tr>
<td id="td1" onclick=alert(td1.currentStyle.backgroundColor)>adf</td>
</tr></table>

#7


只是显示出来的效果一样,但用JAVASCRIPT取值得时候,就不一样了,JAVASCRIPT不认识CSS文件。

#8


使用class好了,不要直接引用backgroundcolor
onMouseOve="this.style.class='ClassOver'"

#9


用runtimeStyle引用运行时刻的样式属性..(即使在随后的脚本中更改多样式也可以取到)
用style能引用的仅仅是内联样式中所定义的静态样式

#10


style + runtimeStyle => currentStyle

#11


runtimeStyle 是什么东东?

#12


即时style(runtimeStyle)和属性style共同作用出当前style(currentStyle)

#13


runtimestyle(运行时样式)用来即时改变元素的样式,这里所说的的“即时”,指的是这样的改变并不改变元素的style,runtimeStyle只是起到改变的作用,它自己本身在没有使用之前没有值。

<div id=a1 style="color:red">runtimeStyle和currentStyle的例子!点击runtimeStyle按钮</div>
<script>document.write("初始的style是:"+a1.style.color+"<br>初始的runtimeStyle是:"+a1.runtimeStyle.color+"<br>初始的currentStyle是:"+a1.currentStyle.color)</script><br>
<input type=button value=runtimeStyle onclick="a1.runtimeStyle.color='blue';show()">
<input type=button value=恢复本来的颜色 onclick="a1.runtimeStyle.color=a1.style.color">
<br>
<script>
function show(){
alert("当前的style是:"+a1.style.color+"\r当前的runtimeStyle是:"+a1.runtimeStyle.color+"\r当前的currentStyle是:"+a1.currentStyle.color+"\r\r看到了吧,style依然没有变化,可是当前显示的颜色是蓝色,currentStyle显示的就是当前的颜色;使用a1.runtimeStyle.color=a1.style.color就可以恢复原来的颜色");
}</script><hr>
<style>
p{color:red}
</style>
在不是行内定义的样式情况下,style可能显示的值是空,这是就可以使用currentStyle
<p onclick='alert("this.style.color = "+this.style.color+"\rthis.currentStyle.color = "+this.currentStyle.color)'>currentStyle的例子!点击这里</p>

#14


在javascript中对元素的属性名style.xxx和css中的属性名不一定一要的,如backgroundcolor和background-color

#1


<table>
<tr>
<td id="td1" style="background-color:#00FF00" onclick="test()">adf</td>
</tr>
</table>
<SCRIPT LANGUAGE=javascript>
<!--
function test(){
alert(td1.style.backgroundColor)
}
//-->
</SCRIPT>

#2


no probelm

<table border=1><tr>
<td id="td1" style="background-color:#00FF00" onclick=alert(td1.style.backgroundColor)>adf</td>
</tr></table>

#3


咦,这样是可以哦,但是我在 css 文件中写这个就会取不到了

为什么?

#4


我一开始都没注意到这个问题,我以为css文件中写 style
和直接写style应该是一样的

#5


你是不是写在class中了?那正常呀,那时backgroundColor本来就是空嘛。

#6


<Style>
#td1{background-color:#00FF00}
</style>
<table border=1><tr>
<td id="td1" onclick=alert(td1.currentStyle.backgroundColor)>adf</td>
</tr></table>

#7


只是显示出来的效果一样,但用JAVASCRIPT取值得时候,就不一样了,JAVASCRIPT不认识CSS文件。

#8


使用class好了,不要直接引用backgroundcolor
onMouseOve="this.style.class='ClassOver'"

#9


用runtimeStyle引用运行时刻的样式属性..(即使在随后的脚本中更改多样式也可以取到)
用style能引用的仅仅是内联样式中所定义的静态样式

#10


style + runtimeStyle => currentStyle

#11


runtimeStyle 是什么东东?

#12


即时style(runtimeStyle)和属性style共同作用出当前style(currentStyle)

#13


runtimestyle(运行时样式)用来即时改变元素的样式,这里所说的的“即时”,指的是这样的改变并不改变元素的style,runtimeStyle只是起到改变的作用,它自己本身在没有使用之前没有值。

<div id=a1 style="color:red">runtimeStyle和currentStyle的例子!点击runtimeStyle按钮</div>
<script>document.write("初始的style是:"+a1.style.color+"<br>初始的runtimeStyle是:"+a1.runtimeStyle.color+"<br>初始的currentStyle是:"+a1.currentStyle.color)</script><br>
<input type=button value=runtimeStyle onclick="a1.runtimeStyle.color='blue';show()">
<input type=button value=恢复本来的颜色 onclick="a1.runtimeStyle.color=a1.style.color">
<br>
<script>
function show(){
alert("当前的style是:"+a1.style.color+"\r当前的runtimeStyle是:"+a1.runtimeStyle.color+"\r当前的currentStyle是:"+a1.currentStyle.color+"\r\r看到了吧,style依然没有变化,可是当前显示的颜色是蓝色,currentStyle显示的就是当前的颜色;使用a1.runtimeStyle.color=a1.style.color就可以恢复原来的颜色");
}</script><hr>
<style>
p{color:red}
</style>
在不是行内定义的样式情况下,style可能显示的值是空,这是就可以使用currentStyle
<p onclick='alert("this.style.color = "+this.style.color+"\rthis.currentStyle.color = "+this.currentStyle.color)'>currentStyle的例子!点击这里</p>

#14


在javascript中对元素的属性名style.xxx和css中的属性名不一定一要的,如backgroundcolor和background-color