我想使用jQuery显示/隐藏表的列。重新加载页面后,显示的表选择应与之前相同。因此,表的每一列都有其自己的类。
如何获取隐藏元素的类?
<thead>
<th class="apple" style="display:none"> Apple</th>
<th class="orange"> Orange</th>
<th class="banana"> Banana</th>
<th class="ananas" style="display:none"> Ananas</th>
</thead>
以下选择不起作用。
$(document).ready(function(){
$("#hide_apple").click(function(){
//change visibility for apple-column
//this doesn't work:
var myClasses = document.getElementsByTagName('th');
alert(myList[0].style.visibility);
for (var i = 0; i < myClasses.length; i++) {
if (myClasses[i].style.visibility === 'hidden') {
alert(myClasses[i].className);
//save class name in cookie..
}
}
}
}
我保存在cookie中的类的名称。
感谢帮助!
最佳答案
您使用的是visibility
而不是display
:
if (myClasses[i].style.visibility === 'hidden')
更改为:
if (myClasses[i].style.display === 'none') {
此外,由于您已经在使用jQuery,因此整个循环可以更改为以下内容:
$(document).ready(function() {
$('th:hidden').each(function() {
alert($(this).attr('class'));
});
});
$(document).ready(function() {
$('th:hidden').each(function() {
alert($(this).attr('class'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<thead>
<th class="apple" style="display:none"> Apple</th>
<th class="orange"> Orange</th>
<th class="banana"> Banana</th>
<th class="ananas" style="display:none"> Ananas</th>
</thead>
</table>
该循环将在所有隐藏的
th
上运行(您当然可以根据需要将选择器更改为更具体的选择),并警告该类。