首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在javascript中使用if/else更改文本颜色

在javascript中使用if/else更改文本颜色
EN

Stack Overflow用户
提问于 2020-07-19 11:39:27
回答 5查看 992关注 0票数 1

我希望有人能帮我解决这个问题,我是个javascript新手。我正在尝试根据HTML文件中的状态更改文本的颜色。

代码语言:javascript
运行
复制
<td id="payment_status_cl" style="text-align: center; height:25px"><%=resultSet.getString("payment_status")%></td>

如果我在javascript中插入if/else语句,它将不起作用。但是,如果没有if/else语句,它就可以工作。例如:

此选项仅更改一种状态的颜色:

代码语言:javascript
运行
复制
function f_color(){
if (document.getElementById('payment_status_cl').value = 'Submitted') {
document.getElementById('payment_status_cl').style.color = "Green";}
}
f_color();

这不管用。javascript:

代码语言: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了。

代码语言:javascript
运行
复制
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';
    }
  }();

但它不起作用。我感谢所有给予我的帮助。

EN

回答 5

Stack Overflow用户

发布于 2020-07-19 11:44:32

欢迎来到Stack Overflow!

我相信您希望在元素上使用innerText方法,而不是使用.value。剩下的看起来还不错

代码语言:javascript
运行
复制
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

票数 0
EN

Stack Overflow用户

发布于 2020-07-19 11:46:31

您正在使用=而不是==

=是赋值,==是比较。

因此,您正在更改您的值,而不是比较它,并且作为一个副作用,将始终满足第一个if,因为赋值表达式的计算结果为真值。

此外,您需要使用innerHTML (或者innerText,如果您不打算在元素中使用HTML ),而不是value (用于输入字段的值,而不是元素的内容)。

注意:我在您的标记中看到,在单元格的内容之前有一个空格!这将是innerHTMLinnerText的一部分!因此,最好在比较之前删除空格,使用trim

代码语言:javascript
运行
复制
if (document.getElementById('payment_status_cl').innerText.trim() == 'Submitted') 
票数 0
EN

Stack Overflow用户

发布于 2020-07-19 11:46:42

尝试更改if语句,使其看起来像这样,而不是=使用==通过使用=来赋值,==用于比较。并从.value更改为.textContent以获取元素的文本内容

代码语言:javascript
运行
复制
if (document.getElementById('payment_status_cl').textContent == 'Submitted')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62975985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档