table 中的行数合并 rowspan为2 怎么写这个脚本
到底是合并还是隔行变色?
隔行变色的话,直接css就能搞定。
功能是变色,,,,有的td是合并的,合并的td用一个颜色
@#~~~#: 把背景色设置在row上,不用关心合并的问题。
@幻天芒: 哦,明白你的意思了。
@幻天芒: 单纯的隔行换色是这样
即使把背景色设置在row上,,但还是不能解决隔行换色
@#~~~#:
<table id="test"> <tr> <td rowspan="2">1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td rowspan="3">1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> </table> <script> var $t = $('#test'); var $trs = $t.find('tr'); var n = 0; var currentColor = 'red'; for (var i = 0; i < $trs.length; i++) { var $tr = $($trs[i]); if (n === 0) { n = $tr.find('td:eq(0)').attr('rowspan') || 1; } $tr.css('background', currentColor); n--; if (n === 0) { currentColor = currentColor === 'red' ? 'blue' : 'red'; } } </script> //仅供参考。
@#~~~#: 多谢大神,,圆点供上
在readty的时候执行这2个代码给行
table的class 为 tbl_tr_filter 的打上标记 even 和odd
Tbl_tr_filter_Init: function () { $(".tbl_tr_filter").each( function () { $(this).find(">tbody>tr:even").addClass("even"); $(this).find(">tbody>tr:odd").addClass("odd"); $(this).find(">tbody>tr:first").addClass("first"); $(this).find(">tbody>tr:last").addClass("last"); } ); }, Tbl_tr_td_filter_Init: function () { $(".tbl_tr_td_filter").each( function () { $(this).find("tr").each( function () { $(this).children("td:even,th:even").addClass("even"); $(this).children("td:odd,th:odd").addClass("odd"); $(this).children("td:first,th:first").addClass("first"); $(this).children("td:last,th:last").addClass("last"); } ); } ); },
然后在css里面对相关的class 写颜色
.tr_data.even > td { background-color: #fae9a6 !important; } .tr_data.odd > td { background-color: #fef9e7 !important; }
那个没有把合并的行进行一个判断呀
@#~~~#:
这个只能写特例了 根据 rowspan写特例 原理和上面的代码一样 你可以吧rowspan当做 class处理 标记单双行
@小眼睛老鼠: 不会呀,,大神
$('tr').each(function (i, dom) {
var isRowSpan = $(this).is(function () {
return $('td[rowspan]', this).length > 0;
}
});
alert(isRowSpan);
for (var i = 0; i < $("#hejie tr").length; i++) {
if (isRowSpan = true) {
if ("上个列表的颜色白的") {
$(this).nextAll('tr:lt(' + (count - 1) + ')').css("background-color", "#f2f2f2");
i += 2;
} else {
$(this.rowIndex).css("background-color", "#fff");
i += 2;
}
} else {
if ("上个列表的颜色是白的") {
$(this).css("background-color", "#f2f2f2");
} else {
$(this).css("background-color", "#fff");
}
}
}
});
@小眼睛老鼠: 这是我自己写的,,,很多问题
@#~~~#: 我只做示范 不帮忙写代码
@小眼睛老鼠:
$(
function
(){
var
i=0,j=0,k=0;
$(
"#tableShow tr:gt(0)"
).each(
function
(){
if
(!$(
this
).find(
"td"
).eq(1).is(
':hidden'
)){
j=$(
this
).find(
"td:eq(1)"
).attr(
"rowspan"
);
};
i++;
if
(k%2==0){
$(
this
).css(
"backgroundColor"
,
"yellow"
)
};
if
(i==j){
i=0;
k++;
};
});
})
@#~~~#: 我找到一个类似的案例 他是这么写的,,帮忙看一下有什么问题?