JS中JQ框架的使用

2019-09-17  本文已影响0人  追逐_chase
web.jpeg

1.基本使用

1.1加载时机
 //页面中所有加载完 触发
    $(window).load(function(){
        console.log("开始了");
    });

  $(document).ready(function(){
        console.log($(".demo"));
        
   });
// DOM加载完成  简写一
$().ready(function(){

});

// DOM加载完成 简写二
$(function(){

});
1.2JQ对象和DOM对象的相互转化
     //JQ转化为 DOM 
        //获取JQuery对象
        var jq_dom = $("div");
         //格式 jq_dom[0]
     console.log( "====="+jq_dom[0]);

        //方法二  Jq.get(0)
        jq_dom.get(0);

//DOM转化 jQ
 // 格式:$(要转化的DOM对象)
 var dom_obj = document.getElementsByTagName("div")[0];
   $(dom_obj).html();

2.选择器

2.1基本选择器
2.2 层级选择器
2.3属性选择器
<script>

    //属性选择器

    $(function(){
        // 查找a中有href属性的标签
        $("a[href]").css("background","red");
        
        //查找到有 www.baidu.com属性的 设置样式
        $("a[href='www.baidu.com']").css("background","yellow");

        //查找到 href != "www.jd.com" 的标签 设置样式
        $("a[href!='www.jd.com']").css("background","green");

       //找到包含 www的标签
       $("a[href^='www']").css("background","#ccc");

       //找到以dom结尾的元素 
       $("a[href$='dom']").css("background","black");

       // 包含摸个元素的标签
       $("a[href*='m']").css("background","red");

       //选择包含多个属性的 标签
       $("a[href][title='s']").css("background","pink");

    });

</script>
2.4过滤选择器
<script>
    $(function(){
        //选择第一个元素
        $("li:first").css("background","pink");

        //选择最后一个元素
        $("li:last").css("background","pink");

        //选择索引为3的元素
        // $("li").eq(3).css("background","red");
        $("li:eq(3)").css("background","red");

        //选择索引不等于2的元素 
        $("li:not(:eq(2))").css("background","yellow");

        //选择索引是奇数的元素
        $("li:odd").css("background","red");
          //选择索引是偶数的元素
        $("li:even").css("background","pink");

        //选择大于摸个索引值的 元素
        $("li:gt(5)").css("background","yellow");
      //选择小于摸个索引值的 元素
        $("li:lt(5)").css("background","yellow");

    });

</script>

3.操作样式类

3.1设置样式 css的3种方法
<script>
    $(function(){
        //设置CSS的样式
       // $().css("key","value") 方式一;
       
       $("button").eq(0).click(function(){
           //设置样式的 方法一
         $("div").css("width","100px");
         $("div").css("height","40px");
         $("div").css("background","red");

           
       });

       //设置样式的方法二  链式编程思想
       $("button").eq(1).click(function(){
           $("div").css("width","100px").css("height","60px").css("background","yellow");
       });

       //对象的方式 设置样式
       $("button").eq(2).click(function(){
           $("div").css({
               width:"100px",
               height:"80px",
               background:"pink"
           });
       });

       //获取div的样式
       $("button").eq(3).click(function(){
          console.log( $("div").css("height"));
          console.log( $("div").css("background"));
          
       });
       
    });

</script>

3.2操作class类名
//添加样式
      $("button").eq(0).click(function(){
          //添加方式一
        //   $("div").addClass("class1");
        //添加方式二
        //   $("div").addClass("class1").addClass("class2");
          //添加方式三
          $("div").addClass("class1 class2");
      });

   $("button").eq(1).click(function(){
          // 返回值是 bool值
          //该方法检测 只能检测一个样式,不能检测多个样式,也不可以链式检测
          console.log( $("div").hasClass("class1"));
          
      });
     $("button").eq(2).click(function () {

            //说明:使用方式同addClass方法

            //$("div").removeClass("class1")
            //$("div").removeClass("class1").removeClass("class2");

            $("div").removeClass("class1 class2");
        })

 //样式切换
      $("button").eq(3).click(function(){
          //有这个样式就删除 没有这个样式就添加
          $("div").toggleClass("class1");
      });

3.3 标签位置的操作
     //1.获取宽度和高度
        console.log($(".demo").width());
        console.log($(".demo").height());
  //2.设置宽度
        $(".demo").width(300)
3.4 操作元素的内容和属性
   $("button").eq(0).click(function () {
            //获取 文本内容 
            console.log($("div").text());
            //设置文本内容
            $("div").text("哈哈哈");
        });
        $("button").eq(1).click(function(){
            //获取 文本内容 
            console.log($("div").html());
            //设置 文本标签内容
            $("div").html("<h3>这是一个h3标签</h3>");
        });

上述:2个方法的区别是text()仅仅是内容显示遇到标签不会转化,html()遇到标签会语义化标签的内容


        //获取value的值
        console.log( $("input").val());
        //设置value的值
        $("input").val("设置一下");
        
  //设置
  $("#demoID").attr("title","我是标题")     //添加
  $("#demoID").attr("title","我是标题-X")   //修改
//获取
$("#demoID").attr("title");
$("#demoID").removeAttr("id");

4动画

4.1隐藏和显示
   $("button").eq(0).click(function(){
            //显示
            $("div").show(2000,function(){
                console.log("动画执行完毕");
                
            });

        });

        $("button").eq(1).click(function(){
            //隐藏
            $("div").hide("slow",function(){
                console.log("hide动画执行完毕");
            });
        });
        $("button").eq(2).click(function(){
            //切换
            $("div").toggle("fast",function(){

                console.log("切换动画执行完毕");
                
            });
        });

4.2滑动
 //展开
        $("button").eq(3).click(function(){
                
            $("div").slideDown(1000,function(){
                console.log(22221);
            });
          
        });
        //收起
        $("button").eq(4).click(function(){
            $("div").slideUp(1000,function(){
                    console.log(1111);
                    
            });
        });
        //切换
        $("button").eq(5).click(function(){
            $("div").slideToggle(1000,function(){
                console.log(33333321);
            });
        });
4.3淡出淡入
   $("button").eq(0).click(function () {
            $("div").fadeIn(2000,function () {
                console.log("动画执行完毕");
            })
        })

        $("button").eq(1).click(function () {
            $("div").fadeOut(2000,function () {
                console.log("动画执行完毕");
            })
        })

        $("button").eq(2).click(function () {
            $("div").fadeToggle(2000,function () {
                console.log("动画执行完毕");
            })
        })
        $("button").eq(3).click(function () {
            $("div").fadeTo(2000,0.5,function () {
                console.log("动画执行完毕");
            })
        })

4.4 动画的停止

<script type="text/javascript">

    $(function () {

       $("#btn1").click(function () {
           $("div>img:last").hide(300,function anHide() {
               //循环调用 完成函数  函数递归 
    
               $(this).prev().hide(300,anHide);

           });

       });


       $("#btn").click(function () {

           $("div>img:first").show(300,function aniShow() {
              //函数递归 自调用
               $(this).next().show(300,aniShow);
           })

       });

    });

</script>
案例.gif

4.5 自定义动画

 /**
    自定义动画
    animate(目标对象,时间,回调函数)
 */

 $(function(){
     $("button").eq(0).click(function(){
        $("div").animate({width:"500px",height:"500px"},1000,function(){
         console.log("动画完成");
         
     });
     });

     $("button").eq(1).click(function(){
        $("div").animate({width:"+=50px",height:"+=50px"},1000,function(){
         console.log("动画完成");
         
     });
     });
     
 });

5 事件

 $("#btn1").click(function () {

            $("#box").append($("<p>先创建的P你标签</p>"));

        });

5.1事件的绑定 on
   $("div").on("click",function(event){

            console.log("点击事件");

            // event 事件处理对象
            //target是事件的目标对象 就是div
           
        });

每一个事件函数都有一个隐藏的参数 event,其中这个几个属性,type是事件类型,target目标对象(事件作用的对象), data是自定义数据,可以在点击事件传值

$("div").on("click",{name:"CC",age:"18"},function(e){

            console.log(e.data);
          
        })
image.png

这个事件绑定可以绑定多次,也可以是不同的事件 比如:mouseenter

5.2 事件冒泡 和 事件的默认行为

在jQ中阻止事件冒泡的方式有2种
1.直接 return:false
2.根据事件函数的参数event阻止 event.stopPropagation() | window.event.cancelBubble = true;

事件的默认行为主要是a标签的一些行为事件 ,有些时候是不需要这些行为自动触发的 所以需要阻止 event.preventDefault();

5.3事件委托
<script>
    //事件委托
    //
    // JQ.on("click","给那个标签添加对象",fn); 
    $(function () {
        //委托ul标签 给li标签 添加点击事件
        $("ul").on("click", "li", function () {

            alert($(this).text());

        });

  //新创建的li也可以 监听事件
        $("button").on("click", function () {
            var ulobj = document.getElementsByTagName("ul")[0];
            var liobj = document.createElement("li");
            liobj.innerHTML = "这是9个li";
            ulobj.appendChild(liobj);

            return false;
        })

    });


</script>
5.4事件的自动触发 trigger
script>

//自动触发事件,模拟被点击事件

$("div").click(function(){
  console.log("点击div了");
  
});

//自动触发相关方法 tigger/ tiggerHander
//触发的事件是那个标签
//要触发的事什么事件
$("div").trigger("click");

//如果页面中有多个div,tigger事件选中的所有的div都会被触发 click事件
// tiggerHander只会触发第一个div的click事件


</script>
5.5事件的解绑
<script>

$("div").click(fn);
function fn(){
  console.log("222222");
  
}

$("div").mouseenter(function(){
  console.log("鼠标进入。。。。");
  
});


//事件注销
//注销div的所有点击事件
// $("div").off("click");
// 如有参数有回调函数,那么这个fn是表示 你要处理那个click点击事件
// 这个fn的函数 必须是 click中 函数是同一个函数
$("div").off("click",fn);
</script>

6.操作元素节点

6.1 元素的创建的2种方式
$(".box").html("<span>spanA</span>");
6.2获取节点
<script type="text/javascript">

    $(function () {

        $("li").mouseenter(function () {

            $(this).css("backgroundColor","red");

        }).mouseleave(function () {

            //找到父元素里面的子元素 去除样式

            $(this).parent().find("li").css("backgroundColor","");

        }).click(function () {

            $(this).css("backgroundColor","red");

            $(this).prevAll().css("backgroundColor","yellow");
            $(this).nextAll().css("backgroundColor","green");

        });

    });
</script>
image.gif
6.3 添加删除节点

7 jQ判断表单元素中的单选框或者是复选框是否选中

$("input").is(":checked")
上一篇 下一篇

猜你喜欢

热点阅读