我希望有人能帮我解决这个问题,我是个javascript新手。我正在尝试根据HTML文件中的状态更改文本的颜色。
<td id="payment_status_cl" style="text-align: center; height:25px"><%=resultSet.getString("payment_status")%></td>如果我在javascript中插入if/else语句,它将不起作用。但是,如果没有if/else语句,它就可以工作。例如:
此选项仅更改一种状态的颜色:
function f_color(){
if (document.getElementById('payment_status_cl').value = 'Submitted') {
document.getElementById('payment_status_cl').style.color = "Green";}
}
f_color();这不管用。javascript:
<script>
function f_color(){
if (document.getElementById('payment_status_cl').value = 'Submitted') {
document.getElementById('payment_status_cl').style.color = "Green";
}
else if (document.getElementById('payment_status_cl').value = 'Pending') {
document.getElementById('payment_status_cl').style.color = "Orange";
}
else if (document.getElementById('payment_status_cl').value = 'Warning'{
document.getElementById('payment_status_cl').style.color = "Yellow";
}
else if (document.getElementById('payment_status_cl').value = 'Overdue') {
document.getElementById('payment_status_cl').style.color = "Red";
}
}
f_color();
</script>我已经尝试添加div了。
var status = document.getElementById("payment_status_cl");
function fcolor() { 
    if (status === 'Submitted') {
      document.getElementById("centerbox1").style.backgroundColor = '#99C262';
    }
    else if (status === 'Pending')
    {
      document.getElementById("centerbox1").style.backgroundColor = '#F8D347';
    }  
    else if (status === 'Warning')  
    {
      document.getElementById("centerbox1").style.backgroundColor = '#FF6C60';
    }
  }();但它不起作用。我感谢所有给予我的帮助。
发布于 2020-07-19 11:44:32
欢迎来到Stack Overflow!
我相信您希望在元素上使用innerText方法,而不是使用.value。剩下的看起来还不错
if (document.getElementById('payment_status_cl').innerText = 'Submitted') {
  document.getElementById('payment_status_cl').style.color = "Green";
}innertText上的MDN文档:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/innerText
发布于 2020-07-19 11:46:31
您正在使用=而不是==。
=是赋值,==是比较。
因此,您正在更改您的值,而不是比较它,并且作为一个副作用,将始终满足第一个if,因为赋值表达式的计算结果为真值。
此外,您需要使用innerHTML (或者innerText,如果您不打算在元素中使用HTML ),而不是value (用于输入字段的值,而不是元素的内容)。
注意:我在您的标记中看到,在单元格的内容之前有一个空格!这将是innerHTML和innerText的一部分!因此,最好在比较之前删除空格,使用trim
if (document.getElementById('payment_status_cl').innerText.trim() == 'Submitted') 发布于 2020-07-19 11:46:42
尝试更改if语句,使其看起来像这样,而不是=使用==通过使用=来赋值,==用于比较。并从.value更改为.textContent以获取元素的文本内容
if (document.getElementById('payment_status_cl').textContent == 'Submitted')https://stackoverflow.com/questions/62975985
复制相似问题