Javascript 更改CSS类声明或实际将样式应用于每个元素?
我有一个超过400行,大约90列的表格。列的可见性应该是动态的。我已经为每个单元格分配了一个css类.column(x),其中(x)是列的索引/计数。现在,我可以通过两种方式更改可见性:Javascript 更改CSS类声明或实际将样式应用于每个元素?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个超过400行,大约90列的表格。列的可见性应该是动态的。我已经为每个单元格分配了一个css类.column(x),其中(x)是列的索引/计数。现在,我可以通过两种方式更改可见性: $('.column5').css('display','block'); 但这必须循环400多个单元格,并可能在每次迭代中重新呈现html(?)。另一种方法是: $('.style').html().replace('.column5{display:none}','.column5{display:blo
$('.column5').css('display','block');
但这必须循环400多个单元格,并可能在每次迭代中重新呈现html(?)。另一种方法是:
$('.style').html().replace('.column5{display:none}','.column5{display:block}');
在哪里
.column1{display:none}
.column2{显示:无}
.column3{显示:无}
.column4{显示:无}
.column5{显示:无}
...
我现在使用的是第一种方法,但是它自然很慢,因为有很多细胞需要改变。问题是:使用第二种方法是否会提高性能?这有意义吗/这是一种不好的做法吗?提前谢谢 我也不会这么做。相反,我在CSS中有如下规则:
.hide-column5 .column5 {
display: none;
}
…然后在单元格容器上切换hide-column5
类(如表
或tbody
,视情况而定)
例如:
$(“输入[type=checkbox]”)。在(“单击”,函数(){
var cls=this.getAttribute(“数据cls”);
$(“表”).toggleClass(cls,!this.checked);
});代码>
.hide-column1.column1{
显示:无;
}
.hide-column2.column2{
显示:无;
}
.hide-column3.column3{
显示:无;
}
第1列
第2列
第3列
1.
2.
3.
1.
2.
3.
1.
2.
3.
显示1
表演2
展示3
我也不会这么做。相反,我在CSS中有如下规则:
.hide-column5 .column5 {
display: none;
}
…然后在单元格容器上切换hide-column5
类(如表
或tbody
,视情况而定)
例如:
$(“输入[type=checkbox]”)。在(“单击”,函数(){
var cls=this.getAttribute(“数据cls”);
$(“表”).toggleClass(cls,!this.checked);
});代码>
.hide-column1.column1{
显示:无;
}
.hide-column2.column2{
显示:无;
}
.hide-column3.column3{
显示:无;
}
第1列
第2列
第3列
1.
2.
3.
1.
2.
3.
1.
2.
3.
显示1
表演2
展示3
您可以使用css偶数/奇数
属性隐藏和显示偶数/奇数行。您应该考虑使用类似于插件的数据表,其中不加载所有400行,只加载少数行,然后根据需要使用ajax加载其余行,性能会更好我以前没有见过这样的东西。有时我用dom或类更改元素样式。但是你更改了整个css。我认为这不可能阻止你使用jQuery。您可能可以使用building函数.hide()和.show()。是否有任何类型的列需要隐藏?谢谢您的建议!不幸的是,客户端希望在没有ajax的情况下同时使用所有400个插件,因此性能可能会有问题,因此除了jQuery之外,我不使用任何插件show()
和hide()
绝对是一个选项,但我选择使用css('display','none')
/css('display','block'))
因为它们快得多。您可以使用css偶数/奇数
属性隐藏和显示偶数/奇数行。您应该考虑使用类似于数据表的插件,不加载所有400行,只加载几行,然后根据需要加载其余的行,性能会更好我以前没有见过这样的东西。有时我用dom或类更改元素样式。但是你更改了整个css。我认为这不可能阻止你使用jQuery。您可能可以使用building函数.hide()和.show()。是否有任何类型的列需要隐藏?谢谢您的建议!不幸的是,客户端希望在没有ajax的情况下同时使用所有400个插件,因此性能可能会有问题,因此除了jQuery之外,我不使用任何插件show()
和hide()
绝对是一个选项,但我选择使用css('display','none')
/css('display','block')
,因为它们速度更快。