获取隐藏元素的类

时间:2014-12-15 09:52:04

标签: javascript jquery

我想使用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;
&#13;
&#13;

以下选择不起作用..

&#13;
&#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;
&#13;
&#13;

我保存在cookie中的类的名称。 谢谢你的帮助!

1 个答案:

答案 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'));
  });
});

&#13;
&#13;
$(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;
&#13;
&#13;

此循环将在所有隐藏的th上运行(当然,如果需要,可以将选择器更改为更具体)并提醒班级。