jquery选择器练习demo

本文介绍了一个使用jQuery选择器实现品牌列表精简与展开效果的案例。通过jQuery选择器定位特定元素,并结合事件处理函数实现品牌项的显示与隐藏。同时,通过修改样式达到视觉上的精简或展开。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jquery选择器综合案例</title>

<link rel="stylesheet" type="text/css" href="../fenglijquery/css/goodName.css">
</head>
<script type="text/javascript" src="../js/jquery-3.1.1.min.js"></script>
 <script type="text/javascript">
 $(document).ready(function(){
     //第一步 从第七条开始隐藏后面的品牌 (除最后一个除外)
     var $category=$("ul li:gt(5):not(:last)");//ul标签中的索引大于5中的元素 不是最后一个
     $category.hide("slow");
     //当用户显示全部 获取按钮对象
     var $toggleBtn=$("div.showmore > a")//标签样式为showmore的div元素的子元素a标签
     $toggleBtn.click(function(event){
         //判断是否为显示
         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)其实也就是$toggleBtn
             //find()是对子集进行操作 filter是对自身元素集合进行操作
             $(this).find('span')
                    .css("background","url(img/up.gif) no-repeat 0 0")
                    .text("精简显示品牌");//正在处理的元素的后代元素的好方法。也就是a标签中span元素
                    //进行高亮显示
              $("ul li").filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')")
                        .addClass("promoted")//添加高亮显示样式
         }
        // event.preventDefault();
        
             return false   //连接不跳转  让浏览器认为用户没有点击此链接
         })
 });
 //上面我们是添加了if判断来处理一个按钮上的交互事件 但是jquery中海油更简单的处理方式
 $toggleBtn.toggle(function(){
     //显示元素
 },function(){
    //隐藏元素
 })
      
 </script>


          
<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 ><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="more.html"><span>显示全部品牌</span></a>
    </div>
</div>


      
</body>
</html>

转载于:https://www.cnblogs.com/hu-bo/p/6548744.html

(答案见下载资源) 上机任务1 用chrome打开dom.sample2.html页面, 在chrome的控制台中输入jQuery代码并执行,完成以下选择动作: (1)查找id号为tigerLily的元素 (2)查找拥有类myList的元素 (3)查找所有的input元素 (4)查找所有img元素和tr元素 (5)查找id号为coffeePot和id号为someDiv的元素 (6)选择具有id属性的所有元素 (7)选择具有id属性的input元素 (8)选择其value属性等于A的元素 (9)选择其value属性等于A或等于C的元素 (10)选择其title属性值中含有dog的img元素 (11)选择其href属性值以http开头的a元素 (12)选择div元素内嵌套的span元素 上机任务2 用chrome打开dom.sample2.html页面, 在chrome的控制台中输入jQuery代码并执行,完成以下选择动作: (13)选择元素li,该元素作为拥有myList类的ul元素的直接子元素 (14)选择id号为radioA的input元素后面的第一个input兄弟元素 (15)选择id号为radioA的input元素后面的所有input兄弟元素 (16)选择dom sample页面中第3个tr元素 (17)选择其type属性值checkbox且索引为偶数的input元素 (18)选择非最后一行的tr元素 (19)选择所有的checkbox元素 (20)选择所有被选中的表单元素 (21)选择含有1972的td元素 (22)选择包含有sapn元素的div元素 (23)选择表格中每行的第一个单元格和最后一个单元格 (24)选择表格中第3行,标题行不算(要求用nth-child()过滤器) 上机任务3 用chrome打开dom.sample2.html页面,该页面中内嵌有几个CSS类:.red .green .blue .yellow .thickBorder .seeThrough 在chrome的控制台中输入jQuery代码并执行,完成以下选择动作: (1)将拥有alt属性的倒数第二个图片元素应用yellow类 (2)将第一个checkbox表单元素应用.green样式 (3)求id值为checkbox3的元素在所有表单元素里的顺序号 (4)用一条链式语句完成:先对所有img元素应用seeThrough样式,再为所有img元素和tr元素应用yellow样式 (5)用filter方法实现:选择单元格内容为Java或Smalltalk的单元格 (6)取图片集中的第2,3,4张图片 (7)用has方法实现:选择那些包含有ul元素的li元素 (8)将tbody每个单元格里的文字设为:我爱jQuery (9)查找form元素的后代元素中标签为label的元素 (10)查找表单元素中是否有id值为checkbox5的元素 提示: 为某dom元素应用某css样式可以使用jQuery中的addClass方法,例如:将id为tt的div元素应用.bt样式,可用些语句:$("#tt").addClass("color","red");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值