我试图通过按下按钮使文本区域内的文本切换为粗体或不旋转。我有以下代码:
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。
有什么想法吗?
由于
答案 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 === '') {