我想使用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>
&#13;
以下选择不起作用..
$(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..
}
}
}
}
&#13;
我保存在cookie中的类的名称。 谢谢你的帮助!
答案 0 :(得分:3)
您正在使用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'));
});
});
&#13;
<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>
&#13;
此循环将在所有隐藏的th
上运行(当然,如果需要,可以将选择器更改为更具体)并提醒班级。