jQuery實現HTML元素隱藏和顯示

讓我們來模仿一下淘寶網當你搜索某個商品的時候,那種顯示全部品牌和顯示部分品牌的功能。

首先我們來理清一下思路:

1、一開始需要先隱藏需要隱藏的元素

2、你需要通過jquery獲取需要在開始顯示的時候需要隱藏的元素對象

3、在頁面寫一個可以觸發點擊事件的按鈕或者鏈接,使用jquery為這個按鈕或者鏈接添加點擊事件

4、當按鈕被點擊的時候,獲取需要隱藏的對象當前是否隱藏值

5、如果是隱藏的,則使其顯示,若不是隱藏的,則讓它隱藏。

下面我們來看代碼:

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
  <style type="text/css">
  <!-- 這裡是css,這個可以根據你的喜好來調整,這不是重點樣式 -->
   *{ margin:0; padding:0;}
   body {font-size:12px;text-align:center;}
   a { color:#04D; text-decoration:none;}
   a:hover { color:#F50; text-decoration:underline;}
   .SubCategoryBox {width:600px; margin:0 auto; text-align:center;margin-top:40px;}
   .SubCategoryBox ul { list-style:none;}
   .SubCategoryBox ul li { display:block; float:left; width:200px; line-height:20px;}
   .showmore { clear:both; text-align:center;padding-top:10px;}
   .showmore a { display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #AAA;}
   
   .showmore a span { padding-left:15px; background:url(img/down.gif) no-repeat 0 0;}
   
   .promoted a { color:#F50;}
  </style>
  <script type="text/javascript" src="scripts/jquery-1.7.2.js"></script><!-- 導入jquery的文件 -->
  <script type="text/javascript">
 
   $(function(){
    $("li:gt(5)").hide();//開始先隱藏第五個li標簽以後的所有li標簽
    $("a").click(function(){//為點擊的連接添加點擊事件處理函數
     var $flag =  $("li:gt(5):lt(6)").is(":hidden");//獲取需要隱藏的元素當前是否隱藏的值
     if($flag){//如果當前是隱藏的則執行if下面的代碼
      $("li:gt(5):lt(6)").show();//使隱藏的元素顯示出來
      $(".showmore a span").css("background","url(img/up.gif) no-repeat 0 0")//是a標簽的圖片變成向上
      $(".showmore a span").text("顯示部分語言");//改變a標簽裡面的文本,這樣才符合語境
      
     }else{//如果是顯示的 則執行下面的代碼
     
     
      $(".showmore a span").text("顯示全部語言");//使a標簽的內容變成顯示全部的內容
      $(".showmore a span").css("background","url(img/down.gif) no-repeat 0 0");//使a標簽的圖片變成向上
      $("li:gt(5):lt(6)").hide();//然後隱藏需要隱藏的內容
     }
     return false;//最後返回false ,為什麼返回false ,因為這樣會阻止鏈接的跳轉
     //或者表單按鈕的提交,否則就會跳轉到別的頁面瞭!
    })
   
   });
  </script>
 </head>
 <body>
  <div class="SubCategoryBox">
   <ul>
    <li ><a href="#" >C</a></li>
    <li ><a href="#" >C++</a></li>
    <li ><a href="#" >C#</a></li>
    <li ><a href="#" >JAVA</a></li>
    <li ><a href="#" >JAVASCRIPT</a></li>
    <li ><a href="#" >Python</a></li>
    <li ><a href="#" >PHP</a></li>
    <li ><a href="#" >GO</a></li>
    <li ><a href="#" >SWIFT</a></li>
    <li ><a href="#" >RUBY</a></li>
    <li ><a href="#" >HTML</a></li>
    <li ><a href="#" >匯編</a></li>
    <li ><a href="#" >PERL</a></li>
    <li ><a href="#" >其它編程語言</a></li>
   </ul>
   <div class="showmore">
    <a href="more.html"  ><span>顯示全部語言</span></a><!-- 這裡就是這個鏈接,但是點擊不會跳轉。因為上面返回的是false -->
   </div>
  </div>
 </body>
</html>

一開始打開是這樣

點擊鏈接之後 觸犯事件函數,那個小三角形是一個圖片,根據狀態的不同,顯示不同的圖片,上面的代碼有寫

if裡面

$(“.showmore a span”).css(“background”,”url(img/up.gif) no-repeat 0 0″)

else裡面

$(“.showmore a span”).css(“background”,”url(img/down.gif) no-repeat 0 0″)

當然鏈接的文字也發生瞭改變,這都是需要註意的細節

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: