改变元素的背景颜色

时间:2018-01-16 16:10:21

标签: javascript jquery

我有同一个班级的多个td,我想改变背景颜色,具体取决于它们是正在进行还是已完成......

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

我的代码不起作用

  

未捕获的TypeError:isCompleted.text不是函数
  在HTMLTableCellElement。 (列表flows.js:4)
  在Function.each(jquery-3.2.1.min.js:2)
  在HTMLDocument。 (列表flows.js:3)
  在j(jquery-3.2.1.min.js:2)
  在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>

1 个答案:

答案 0 :(得分:1)

因为isCompleted是DOM,而不是jQuery。

所以你需要做

$(isCompleted).text()