JQuery选项笔记 选择器终结篇 -- 小案例
需求:
隐藏从第七条后开始的品牌,最后一条要显示
点击显示更多,隐藏的品牌会显示,按钮文本切换成精简显示品牌,高亮推荐品牌
点击精简显示后,隐藏从第七条后开始的品牌,最后一条要显示,按钮文本切换,去掉高亮
在这个案例中,除了选择器外,会用到的几个jQuery方法:
show()--显示隐藏的匹配元素
css(name,value)--给元素设置样式
text(string)---设置所有匹配元素文本的内容
filter(expr)---筛选出与指定表达式匹配的元素集合,其中expr可以是多个选择器的组合
它和find方法的不同是,find会元素内宣召匹配的元素,而filter则是筛选元素。一个是对子集进行操作,一个是对自身集合进行筛选。
addClass(class)--为匹配的元素添加指定的类名
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Sample HTML</title> <link href="./css/style.css" rel="stylesheet" type="text/css"> <script src="./js/jquery.js"></script> <script src="./js/myjs.js"></script> </head> <body> <p>精简:</p> <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 style="display:none"><a href="#">富士</a><i>(14894) </i></li> <li style="display:none"><a href="#">柯达</a><i>(9520) </i></li> <li style="display:none"><a href="#">宾得</a><i>(2195) </i></li> <li style="display:none"><a href="#">理光</a><i>(4114) </i></li> <li style="display:none"><a href="#">奥林巴斯</a><i>(12205) </i></li> <li style="display:none"><a href="#">明基</a><i>(1466) </i></li> <li style="display:none"><a href="#">爱国者</a><i>(3091) </i></li> <li ><a href="#">其它品牌相机</a><i>(7275) </i></li> </ul> <div class="showmore"> <a href="more.html"><span>显示全部品牌</span></a> </div> </div> <br/> </body> </html>
*{ 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;}
$(document).ready( function() { var $category = $("ul li:gt(5):not(:last)");// 筛选出ul中第七个及以后并且不包括最后一个li的li集合 $category.hide(); var $toggleBtn = $("div.showmore > a");//定位到a元素(按钮) // $toggleBtn // .click(function() { // if ($category.is(":visible")) { // $category.hide(); // $(this).find("span").css("background","url(img/down.gif) // no-repeat 0 0").text("显示全部品牌"); // $("ul li").removeClass("promoted"); // } else { // $category.show(); // $(this).find("span").css("background", // "url(img/up.gif) no-repeat 0 0") // .text("精简显示品牌"); // $("ul li") // .filter( // ":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')") // .addClass("promoted"); // } // return false; // }); // another way 把第一个会出发的放在前面,若把hide放在前面,则用户第一次点击的时候,是没有反应的 $toggleBtn.toggle(function() { $category.show(); $(this).find("span").css("background", "url(img/up.gif) no-repeat 0 0").text("精简显示品牌");// 更换背景图片,更换文字 $("ul li").filter( ":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')") .addClass("promoted");// 高亮推荐的品牌 }, function() { $category.hide(); $(this).find("span").css("background", "url(img/down.gif) no-repeat 0 0").text("显示全部品牌"); $("ul li").removeClass("promoted"); }); });
相关推荐
牵手白首 2020-06-14
donghongbz 2020-05-15
83510998 2020-08-08
tthappyer 2020-07-25
tztzyzyz 2020-07-05
87281248 2020-07-04
82244951 2020-06-28
89510194 2020-06-27
开心就好 2020-06-10
89510194 2020-06-06
Web全栈笔记 2020-06-04
tztzyzyz 2020-05-31
开心就好 2020-05-27
牵手白首 2020-05-19
牵手白首 2020-05-16
tztzyzyz 2020-05-15
hehekai 2020-05-08