2013-10-13 51 views
0

所以我试图做一些东西,每当我点击文本改变的颜色。试图改变点击在JavaScript中的文字的颜色

的Javascript:

function changecolor(){ 
    var tc = document.getElementById("header").style.color.value; 
    if (tc = "#000000") { tc = "#0009FF"} 
    else if (tc == "#0009FF") { tc = "#FF0000"} 
    else if (tc == "#FF0000") { tc = "#15FF00"} 
    else if (tc == "#15FF00") { tc = "#FFA600"} 
    else {tc = "#000000"}; 
    document.getElementById("header").style.color.value = tc; 
} 

HTML:

<div onclick="changecolor()"><h1 id="header" style="color:#000000;"> Nick's Basic Physic's Calculator </h1></div> 

它不工作,我一直无法找出原因。当我点击文字时,什么都没有发生。

+2

有什么问题? –

+0

不知道,但我认为你的HTML'onclick =“changecolor()”'因为我认为点击将执行'changecolor'函数的结果,尝试将其更改为'onclick =“changecolor”'' – Epsil0neR

回答

1

变化

document.getElementById("header").style.color.value = tc;

document.getElementById("header").style.color = tc;

工作例如:

http://jsfiddle.net/xEyLf/

1

你的问题是var tc = document.getElementById("header").style.color.value;

您必须更改为tc = document.getElementById("header").style.color;才能将颜色变为变量。

0

我有另一种解决方案......这里有一个的jsfiddle:http://jsfiddle.net/9zfJA/

请记住我使用这些jQuery方法(以及jQuery库本身),通过CSS类之间简单地切换:

hasClass(): to check if the class is present 

addClass(): to add the correct class based on the condition above 

removeClass(): remove all classes, I've basically built a "reset" function 

我认为在它的功能和想要的方式上存在错误,但是我已经根据您在问题中使用的相同逻辑来构建它。