1.案例需求
jquery最基础的选择器部分已经基本结束,来一个简单案例总结回顾下学的东西。
案例需求:
用一个按钮控制元素的显示与隐藏,页面如下,从第五个开始,不要最后一个,控制他们的显示和隐藏。
2.代码实现
- 方法一
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>动态列表效果.html</title> 6 <style type="text/css"> 7 ?*{ margin:0; padding:0;} 8 body {font-size:12px;text-align:center;} 9 a { color:#04D; text-decoration:none;}10 a:hover { color:#F50; text-decoration:underline;}11 .SubCategoryBox {width:600px; margin:0 auto; text-align:center;margin-top:40px;}12 .SubCategoryBox ul { list-style:none;}13 .SubCategoryBox ul li { display:block; float:left; width:200px; line-height:20px;}14 .showmore { clear:both; text-align:center;padding-top:10px;}15 .showmore a { display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #AAA;}16 .showmore a span { padding-left:15px; background:url(img/down.gif) no-repeat 0 0;}17 .promoted a { color:#F50;}18 </style>19 <!-- 引入jQuery -->20 <script src="../js/jquery-1.8.3.js" type="text/javascript"></script>21 <script type="text/javascript">22 ????var flag = true;23 ????$(function(){24 ????????$(".showmore a").click(function(){25 ????????????if(flag){26 ????????????????$("ul li").each(function(index){27 ????????????????????if(index >= 5 && 12 >= index) {28 ????????????????????????$(this).attr("style","display:none;");29 ????????????????????????$("span").html("显示全部品牌");30 ????????????????????}31 ????????????????});32 ????????????????flag = false;33 ????????????} else {34 ????????????????$("ul li").each(function(index){35 ????????????????????if(index >= 5 && 12 >= index) {36 ????????????????????????$(this).attr("style","");37 ????????????????????????$("span").html("隐藏全部品牌");38 ????????????????????}39 ????????????????});40 ????????????????flag = true;41 ????????????}42 ????????});43 ????});44 </script>45 </head>46 <body>47 <div class="SubCategoryBox">48 <ul>49 <li ><a href="#">佳能</a><i>(30440) </i></li>50 <li ><a href="#">索尼</a><i>(27220) </i></li>51 <li ><a href="#">三星</a><i>(20808) </i></li>52 <li ><a href="#">尼康</a><i>(17821) </i></li>53 <li ><a href="#">松下</a><i>(12289) </i></li>54 <li ><a href="#">卡西欧</a><i>(8242) </i></li>55 <li ><a href="#">富士</a><i>(14894) </i></li>56 <li ><a href="#">柯达</a><i>(9520) </i></li>57 <li ><a href="#">宾得</a><i>(2195) </i></li>58 <li ><a href="#">理光</a><i>(4114) </i></li>59 <li ><a href="#">奥林巴斯</a><i>(12205) </i></li>60 <li ><a href="#">明基</a><i>(1466) </i></li>61 <li ><a href="#">爱国者</a><i>(3091) </i></li>62 <li ><a href="#">其它品牌相机</a><i>(7275) </i></li>63 </ul>64 <div class="showmore">65 <a href="#"><span>隐藏全部品牌</span></a>66 </div>67 </div>68 </body>69 </html>
2.方法2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>动态列表效果.html</title><style type="text/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><!-- 引入jQuery --><script src="../js/jquery-1.8.3.js" type="text/javascript"></script><script type="text/javascript"> ???var flag = true; ???$(function(){ ???????//获取第5个之后的且不包括之后一个的li ???????var liArr = $("li:gt(4):not(:last)"); ???????//隐藏 ???????liArr.hide(); ???????$("span").click(function(){ ???????????//状态切换 ???????????liArr.toggle(); ???????????//判断是否隐藏 ???????????if(liArr.is(":hidden")){ ???????????????$(this).html("显示所有品牌"); ???????????}else{ ???????????????$(this).html("隐藏所有品牌"); ???????????} ???????}); ???});</script></head><body><div class="SubCategoryBox"><ul><li ><a href="#">佳能</a><i>(30440) </i></li><li ><a href="#">索尼</a><i>(27220) </i></li><li ><a href="#">三星</a><i>(20808) </i></li><li ><a href="#">尼康</a><i>(17821) </i></li><li ><a href="#">松下</a><i>(12289) </i></li><li ><a href="#">卡西欧</a><i>(8242) </i></li><li ><a href="#">富士</a><i>(14894) </i></li><li ><a href="#">柯达</a><i>(9520) </i></li><li ><a href="#">宾得</a><i>(2195) </i></li><li ><a href="#">理光</a><i>(4114) </i></li><li ><a href="#">奥林巴斯</a><i>(12205) </i></li><li ><a href="#">明基</a><i>(1466) </i></li><li ><a href="#">爱国者</a><i>(3091) </i></li><li ><a href="#">其它品牌相机</a><i>(7275) </i></li></ul><div class="showmore"><a href="#"><span>显示全部品牌</span></a></div></div></body></html>
很明显,法二比法一简洁了不是一点点,主要是因为法二对jquery的方法和过滤器有了恰当的应用,所以说api真的省事很多,工作中如果总感觉自己code很慢,可能就是api
不能熟练使用的原因qaq。。
jQuery--选择器案例实战
原文地址:https://www.cnblogs.com/jxxblogs/p/9608823.html