2
<script language="javascript">

    function changecolor (i)
    {
        if(document.getElementById)
            document.getElementById(i).color = "green";
        else if(document.all)
            document.all[i].color = "red";

        return false;
    }

</script>



<h1>Edit Status: 
    <a href="#" onClick="return changecolor('item1')" class="a">
        <font style="color: #f00;">
            <font id=item1>Disabled</font>
    </a>
</h1><br></font>

我有上面的文本换色器,现在我想用红色创建禁用,当你点击它时,文本改变并且颜色变成绿色,如果你再次点击它会返回..

那我该怎么做呢?该代码仅在我单击一次时才有效,并且不会更改文本..

感谢你们所有人!

4

3 回答 3

2

您使用<font>了 HTML 标签,不推荐使用。您应该使用 CSS 来设置 HTML 标签的样式。

您可以在此处阅读有关 CSS 的信息:W3schools - CSS

我认为这个 HTML 对你有好处:

<h1>Edit Status: 
    <a href="#" onClick="return changecolor(this)" style="color: red;">Disabled</a>
</h1>

使用此脚本更改文本和颜色:

<script type="text/javascript">

function changecolor(element){
    if (element.innerHTML == "Disabled"){
        element.innerHTML = "Enabled";
        element.style.color = "green";
    } else {
        element.innerHTML = "Disabled";
        element.style.color = "red";
    }
    return false;
}

</script>
于 2012-11-08T17:29:02.360 回答
1

让我们看看您的 HTML 元素的嵌套:

<h1>Edit Status: 
    <a href="#" onClick="return changecolor('item1')" class="a">
        <font style="color: #f00;">
            <font id=item1>Disabled</font>
        </a>   <----- bad
    </h1>      <----- bad
    <br>
</font>        <----- bad

我建议:

  1. 删除所有<font>标签,因为这不是 1997 年。:) 使用 CSS
  2. 修复元素的嵌套
  3. 用您的固定代码更新您的问题
于 2012-11-08T17:14:42.467 回答
0

你的支票很奇怪。我看不到您无法使用的场景document.getelementById

你想要的东西更像:

function changecolor (controlID)
{
    var obj = document.getElementById(controlID);

    //switch color and change text conditionally:
    if(obj.color === "green"){
        obj.color = "red";
        obj.innerText = "Disabled";
    } else {
        obj.color = "green";
        obj.innerText = "Enabled";
    }
}

但除此之外,您的 HTML 格式不正确,因此您也应该真正寻求纠正。

于 2012-11-08T17:15:20.853 回答