Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改CSS类声明或实际将样式应用于每个元素?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 更改CSS类声明或实际将样式应用于每个元素?

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

我有一个超过400行,大约90列的表格。列的可见性应该是动态的。我已经为每个单元格分配了一个css类.column(x),其中(x)是列的索引/计数。现在,我可以通过两种方式更改可见性:

$('.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')
,因为它们速度更快。