gpt4 book ai didi

javascript - 使用 Javascript 问题交替表行

转载 作者:行者123 更新时间:2023-11-28 04:40:50 24 4
gpt4 key购买 nike

我有以下脚本可以将奇数类和偶数类添加到交替的表行中,效果很好。

function alternate(){ 
if(document.getElementsByTagName){
var table = document.getElementsByTagName("table");
var rows = document.getElementsByTagName("tr");
for(i = 0; i < rows.length; i++){
//manipulate rows
if(i % 2 == 0){
rows[i].className = "even";
}else{
rows[i].className = "odd";
}
}
}
}

但是当一个页面上有多个表格时就会出现问题。我需要为页面上的每个表重置计数器,以便每个表的第一行始终具有相同的类(即奇数)。目前,页面上的第二个表将仅继续计算行的奇数-偶数,因此如果第一个表的行数为奇数,它将从不同的类开始。

任何人都可以帮助我更改此代码以实现此目的吗?

最佳答案

给你:

function alternate() {
var i, j, tables, rows;

tables = document.getElementsByTagName( 'table' );

for ( i = 0; i < tables.length; i += 1 ) {
rows = tables[i].rows;

for ( j = 0; j < rows.length; j += 1 ) {
rows[j].className = j % 2 ? 'even' : 'odd';
}
}
}

现场演示: http://jsfiddle.net/simevidas/w6rvd/


替代方案:

(用 forEach 调用替换 for 迭代语句使代码更简洁。尽管 :/ 在 IE8 中不起作用。)

function alternate() {
var tables = document.getElementsByTagName( 'table' );

[].forEach.call( tables, function ( table ) {
[].forEach.call( table.rows, function ( row, i ) {
row.className = i % 2 ? 'even' : 'odd';
});
});
}

现场演示: http://jsfiddle.net/simevidas/w6rvd/1/

关于javascript - 使用 Javascript 问题交替表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com