切换元素FontWeight - Javascript

时间:2013-02-17 21:02:19

标签: javascript toggle

我试图通过按下按钮使文本区域内的文本切换为粗体或不旋转。我有以下代码:

function bold()
{
    var ta = document.getElementById("textArea");

    if(ta.style.fontWeight == "normal"){
        ta.style.fontWeight = "bold";
    }
    else{
        ta.style.fontWeight = "normal";
    }
}

当我按下按钮时,第一次没有任何反应。但是我第二次按它并且运行完美。通过调试器运行它,变量“ta”第一次变为“”,然后第二次变为“normal”,尽管css中的文本区域设置为normal。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:2)

因此发生这种情况的原因是因为ta.style正在访问textarea元素的style属性,该属性不具有来自CSS的样式的任何信息。你可以写这样的textarea,它应该与你拥有的一样:

<textarea id="textArea" style="font-weight:normal"></textarea>

但是,我建议你在js中沿着这些方面做点什么:

function bold()
{
    var ta = document.getElementById("textArea");

    if(ta.style.fontWeight !== "bold"){
        ta.style.fontWeight = "bold";
    }
    else{
        ta.style.fontWeight = "normal";
    }
}

将您的功能重命名为toggleBold;)

也可能会有所帮助

答案 1 :(得分:1)

不要试图打击它,只需改变你的状况:

if (ta.style.fontWeight == "normal" || ta.style.fontWeight === '') {