alp*_*pha 1 javascript css jquery
我有几个动态创建的表.行数可达1000+.创建行后,我运行以下代码:
$('[id$=TestGrid]').not('tr:first').each(function () {
$('tr:odd', this).addClass('odd').removeClass('even');
$('tr:even', this).addClass('even').removeClass('odd');
});
Run Code Online (Sandbox Code Playgroud)
或者我应该这样做
$('[id$=TestGrid]').not('tr:first').each(function () {
$('tr:nth-child(odd)', this).addClass('odd').removeClass('even');
$('tr:nth-child(even)', this).addClass('even').removeClass('odd');
});
Run Code Online (Sandbox Code Playgroud)
因为,它是动态的,我不知道ID,但我知道它们将以"... TestGrid"结束.
上述任何一种会导致回流问题吗?如果是这样,我该如何解决这个问题?
谢谢!
您可以使用CSS :nth-child伪类来设置行的样式:
/* odd rows plus skip first row */
tr[id$=TestGrid]:nth-child(2n + 3) { ... }
/* even rows */
tr[id$=TestGrid]:nth-child(2n) { ... }
Run Code Online (Sandbox Code Playgroud)
你也可以在jQuery代码中使用上面的选择器:
$('tr[id$=TestGrid]:nth-child(2n + 3)').addClass("odd").removeClass("even");
$('tr[id$=TestGrid]:nth-child(2n)').addClass("even").removeClass("odd");
Run Code Online (Sandbox Code Playgroud)
这里解释了第n个子伪类.