javascript - 改变元素的背景颜色

标签 javascript jquery

我有多个同一个类的 td,我想根据它们是进行中还是已完成来更改背景颜色...

问题是 $('.isCompleted').text() 给了我所有的进行中(大字符串重复同样的事情)

我的代码不起作用

Uncaught TypeError: isCompleted.text is not a function
    at HTMLTableCellElement. (list-flows.js:4)
    at Function.each (jquery-3.2.1.min.js:2)
    at HTMLDocument. (list-flows.js:3)
    at j (jquery-3.2.1.min.js:2)
    at k (jquery-3.2.1.min.js:2)

$(document).ready(function () {
   var isCompletedRows = $('.isCompleted');
   $.each(isCompletedRows, function (index, isCompleted) {
       console.log(isCompleted.text());
       if(isCompleted.text() === "In Progress") {
           $(this).closest('tr').css('background-color','#000');
       }
       else if(isCompleted.text() === "Completed") {
           $(this).closest('tr').css('background-color','#555231');
       }
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<c:forEach var="flow" items="${flows}">
  <tr class="flow-list">
    <c:if test="${flow.isCompleted == 1}">
      <td class="isCompleted">Completed</td>
    </c:if>
    <c:if test="${flow.isCompleted != 1}">
      <td class="isCompleted">In Progress</td>
    </c:if>
  </tr>
</c:forEach>

最佳答案

因为 isCompleted 是 DOM,而不是 jQuery。

所以你需要做

$(isCompleted).text()

关于javascript - 改变元素的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48285460/

相关文章:

javascript - 对 Node、NPM、Bower 感到困惑,并将其用于 Bootstrap

javascript - JavaScript 中的 setTimeout

javascript - 限制用户输入/删除任何字母

javascript - 如何解析html页面并通过符号

php - 如何从 jquery ui 的 .sortable() 获取数据?

javascript - 为什么 <body>、<head>、<html> 标签和其他一些标签不被视为 <code> 标签的 HTML?

jquery - 我应该使用 .on() 或 .click() 附加事件处理程序吗?

javascript - Jquery 对话框上的 Ajax 问题

javascript - 显示最近点的 Highcharts 会导致闪烁的十字准线和奇怪的顺序

jquery - 如何在 jQuery 可排序 Accordion 标题上实现按钮