1. 程式人生 > >9.19 列表特殊行標紅

9.19 列表特殊行標紅

str 可能 length css樣式 之前 其中 rem spa 總結

這個版本我做的模塊有個需求,點擊延期還款客戶復選框後,將列表中延期還款超過當前日期的一行標紅。

沒做之前我覺得排序和標紅很難,所以一直沒有做,往後壓,現在排序已經做好啦,花了大半天,然後來做標紅。

之前我設想選中復選框後,可能用到刷新列表函數tableUpdate(),甚至想過用到filter的render函數。所以有點慌。

開始做之後,突然想到,選中復選框後,直接找出超時的td,然後將它的父節點tr一整行color改為紅色就好了呀!

在網上看了下遍歷td的代碼,然後就開始寫了。

基本思路是:取 table 的 tbody 的所有 tr, 存到 trList , 遍歷 trList, 找到第 i 個 tr 的後代 td 元素,

  取出其中指定列的 td ,取其值,判斷改值是否超時,若超時則給當前 tr 設置css樣式 (color,red) ,

  當取消標紅時,將當前 tbody 的所有 tr 設置顏色為默認即可。

代碼如下:

//標紅延期墊款核銷客戶
$(#showRed).on(change, function(){
     if($(this).attr(checked)){
         $(this).removeAttr(checked);
        $("#advTable tbody").children(tr).css(color,‘‘);
      }else
{ $(this).attr(checked,true); var trList = $("#advTable tbody").children("tr"); for (var i = 1; i < trList.length; i++) { var td = trList.eq(i).find("td").eq(7).html(); if(td > 500){ // trList.eq(i).css(color,red); } } } });

不過還要去排序事件和reload函數裏去加一下,因為每次點擊排序或者改變篩選條件後會刷新列表,紅色會被重置掉,需要特意取消標紅復選框的選中。

//改變篩選條件後取消標紅復選框
 $(#showRed).removeAttr(checked);

總結:光靠想是不能解決問題的。不要怕,只要下手開始去做,問題總會被解決的。

雖然這個功能很簡單,但是我很開心。繼續加油吧!

9.19 列表特殊行標紅