[英]CSS Style on Grouped Table Rows
我有一個表,可以包含可變數量的數據。 在此表中,我有兩列(月份和年份),這些列是我們對數據進行分組的依據。
我正在嘗試為每個分組數據集替換行的顏色。 例如, Feb 2016
年Feb 2016
所有數據都將具有class=a
然后是下一組數據class=b
,然后返回a
。本質上是奇數/偶數,但基於其中的值在多行上。
在上圖中,將有3組數據。 Feb 2016
, June 2016
Feb 2016
June 2016
, Jan 2017
June 2016
Jan 2017
前4行將為class=a
,5&6將為class=b
,最后7行將為class=a
。
我能夠進行標准的奇/偶交替行,但這還不止於此。
這是數據集的小提琴: https : //jsfiddle.net/yo04vxoa/
任何幫助或指示將不勝感激!
編輯:
這是期望的結果: https : //jsfiddle.net/yo04vxoa/3/
只是不確定如何通過按月/年對相似數據進行分組來正確地獲取這些類。
這應該給您您想要的東西: https : //jsfiddle.net/nx35pdwa/4/
$(data).find('requests').each(function() {
var $p = $(this.previousElementSibling);
if (this.previousElementSibling &&
($p.find('month').text() !== $(this).find('month').text() ||
$p.find('year').text() !== $(this).find('year').text() )) {
alt = !alt;
}
output += '<tr' + (alt ? ' class="alt" ' : '') + '>';
output += '<td>' + $(this).find('month').text() + '</td>';
output += '<td>' + $(this).find('year').text() + '</td>';
output += '<td>' + $(this).find('title').text() + '</td>';
output += '</tr>'
})
通過將當前迭代與先前迭代中的字段進行比較,可以確定是否需要替換修飾符類:
您可以這樣做:
var flip = false;
var flipType = 'even';
$('table tbody tr').each(function(index)
{
var current = $('table tbody tr').eq(index).find('td').eq(2).text();
var next = $('table tbody tr').eq(index + 1).find('td').eq(2).text();
if(next != ""){
if(current == next){
if(flip)
$(this).addClass("odd");
else
$(this).addClass("even");
}
else {
$(this).addClass(flipType);
flipType = "even" ? "odd" : "even";
flip = true;
}
}
else
{
flipType = "odd" ? "even" : "odd";
$(this).addClass(flipType);
}
});
參見https://jsfiddle.net/yo04vxoa/7/
生成表后,這將添加類。 我在表中添加了一個新的隱藏列以容納每一行的月份年份,然后將元素添加到數組中並對其進行迭代以更改顏色類。
新欄:
<th style="display:none;">ColourDate</th>
碼:
var myVals = [];
$(".dateColour").each(function(){
myVals.push( { el: $(this), t: $(this).text()});
});
var lastVal = myVals[0].t;
var myClass = 'a';
$.each(myVals, function(i, e){
if (e.t !== lastVal){
lastVal = e.t;
myClass = myClass == 'a'? 'b' : 'a';
}
e.el.parent().addClass(myClass);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.