JQuery02

学习了JQuery的核心函数

做了一个简单的练习

1、获取一个函数

2、接收一个字符串选择器

3、接收字符片段

4、接收一个DOM元素(document objcet model)文档对象模型

案例代码

$(function () {
            //1、接收一个函数
            // alert("hello nj")
            //    2、接收一个字符串选择器
            var $box1 = $('.box1');
            var $box2 = $('#box2');
            console.log($box1);
            console.log($box2);
            //  3、接收一个字符片段
            var $p =$("<p>我是一个P标签</p>")
            console.log($p);
            //append方法追加到box1后面
            $box1.append($p);
            //    4、接收一个DOM元素
            var span = document.getElementsByTagName("span")[0];
            console.log(span);
            //把DOM元素包装成一个对象返回给JQ
            var $span = $(span);
            console.log($span);


<div class="box1"></div>
<div id="box2"></div>
<span>我是span标签</span>
<p class="test">这是一个标签</p>

  

静态方法和实例对象调用方法的两种形式

//静态方法和实例化调用
    //    1、定义一个类
        function AClass() {
            
        }

    //    2、静态方法
        AClass.staticMethod = function () {
            alert("staticMethod静态方法")
        }
        //直接使用类名调用静态方法
        AClass.staticMethod();

    //    2.1、实例化方法
        AClass.prototype.instractMethod =function () {

            document.write("实例化方法执行了")
        }

       // 3、通过实例化创建对象来调用非静态方法
       // 对象调用
       var a = new AClass();
        a.instractMethod();

  

伪数组

 $(function () {
        //输出div的长度
        var $div = $("div");
        console.log($div);

        //满足条件,0-length-1就满足数组条件
        var arr = [1,2,3];
        console.log(arr);
    });

each和map循环

 var arr = [1,2,5,8,9,10,20];
        //伪数组
        var obj = {0:1,1:2,3:5,7:9,9:10,length:5};
    //    使用JS原生方式遍历数组
    //    第一个参数是value的下标索引
        arr.forEach(function (value,index) {
            console.log(index,value);
        });
        //遍历伪数组,条件满足0-length-1 原生不能遍历伪数组
        obj.forEach(function (value,index) {
            console.log(index,value);
        })

    //    使用JQuery遍历
            $.each(arr,function (value,index) {
                console.log(index,value);
            })

    //        遍历伪数组,使用JQ能够遍历伪数组,
        //    一般建议使用JQ
        /**
         * JQ语法格式
         * $.each(数组名,function(index(索引),value(值))函数名称)
         */
            $.each(obj,function (index,value) {
                console.log(index,value);
            })


//map 遍历数组的内容
         // arr.map(function (value, index, array) {
         //     console.log(index,value);
         // })
        //    map遍历伪数组
        /**
         * 原生JS的map和each都不能遍历伪数组
         */
            // obj.map(function (value, index, array) {
            //     console.log(index,value);
            // })

            //分隔符
            // var str = "----------------------------"
            // console.log("*********"+str+"**********");

        /**
         * 使用JQ方式的map进行遍历
         */

        // $.map(arr,function (value,index) {
        //     console.log(index,value);
        // })

        //JQ的map能遍历伪数组
        // $.map(obj,function (value,index) {
        //     console.log(index,value);
        // })


        /**
         * each与map遍历之间的区别
         *
         * each静态返回值遍历谁就是返回值
         * map默认返回一个空数组
         *
         * each不支持使用回调函数
         * map支持回调函数,并且可以对回调函数加以处理,返回组成一个新的数组
         *
         */
       var result1 =  $.map(arr,function (value,index) {
            console.log(index,value);
            return index+value;
        })

        var result2=  $.each(arr,function (value,index) {
            console.log(index,value);
        })

        console.log(result1);
        console.log(result2);

 

函数方法的几种判断方法

 var arr = [1,3,5,7,9];
        //伪数组
        var Array = {0:1,1:2,3:5,7:9,9:10,length:5};
        //定义一个对象
        var obj ={"name":"张三","age":25};
        //函数
        var f = function(){};
         //window对象
        var wind = window;

        /**
         * 判断是否为一个window对象
         * 返回结果为true/false
         */
       // var win = $.isWindow(wind);
       //  console.log("判定结果为:"+win);

        /**
         * 判断是否为一个数组
         * $.idArray();
         * 返回结果为true/false
         */
        // var array = $.isArray(arr);
        // console.log("判定结果为:"+array);

        /**
         *去掉空格
         * $,trim();
         */
        // var str = "       hello       "
        // var tim = $.trim(str);
        // console.log("----"+str+"----");
        // console.log("----"+tim+"----");

        /**
         * 判断是否为一个函数
         * $.idFunction()
         */

        var fun = $.isFunction(f);
        console.log("判定结果为:"+fun);

  

JQuery的ready的暂停加载holdReady()方法的使用

<script src="../js/jquery-1.10.2.js"></script>
    <script>

        /**
         * 暂停ready立即执行
         * JQ等DOM元素加载后立即执行 不等图片也加载完毕
         * 使用holdRaedy暂停理解执行
         * true为关闭,false开启
         */
        $.holdReady(true);
       $(document).ready(function () {
           alert("hahaha");
       })
    </script>
</head>
<body>
<button>点击返回readly</button>
<script>
         var but = document.getElementsByTagName("button")[0];
//         加载点击事件函数
        but.onclick =function () {
            // alert("执行redly")
        //开启暂停执行
            $.holdReady(false);
        }



</script>
</body>

  

选择器

 $(function () {
            //    编写JQ代码

            /**
             * empty
             * 匹配所有不包含子元素和文本的标签
             * @type {jQuery|HTMLElement}
             */
            var emp = $("div:empty");
            // console.log(emp);


            /**
             *parent
             * 找到有文本和子元素得知道元素
             */
            var pare = $('div:parent');
            // console.log(pare);

            /**
             * contains(text)
             * 匹配查找文本,查找指定内容的元素
             */
            var con = $('div:contains("是div")')
            // console.log(con);

            /**
             * has(selector)
             * 查找包含指定子元素的标签
             */
            var ha = $('div:has("span")')
            // console.log(ha);


        });

  属性和属性节点

 $(function () {
             /**
              * 属性和属性节点
              * 1、什么是属性
              * 对象身上保存的变量
              *2、如何操作属性
              * 实例化对象
              * 对象.属性=参数
              * 对象['属性']=参数
              *3、属性节点
              * 编写HTML时,HTML添加的属性就是属性节点
              * 浏览器打开找到span这个DOM元素,展开就是属性
              * 3.1操作节点
              * DOM.setAttributes('dom属性','参数');
              * DOM.getAttributes();
              *4、属性和属性节点的区别是什么
              * 任何元素都有属性,但是只有DOM才有属性节点
              */
          //    定义一个方法
             function Person() {
                 
             }

          //   实例化方法
             var p = new Person();
             // p.name="小薇";
             p['name']='鲜磊';
             //调用方法格式,对象.属性
             // console.log(p.name);
             // console.log(p['name']);

             var  span = document.getElementsByTagName("span")[0];
             //设置name的参数
             span.setAttribute("name","lnj");
             //获取name的值
             console.log(span.getAttribute('name'));
         });

  属性方法

 $(function () {
            //    编写JQ代码
             /**
              * attr(name|pro|key,val|fn)
              * 作用:可以设置属性的值
              * 可以传递一个参数,也可以传递两个参数
              * 如果是传递一个参数,代表获得节点的值
              * 如果传递两个参数,代表设置属性的值
              *
              * 注意点:
              * 获得:无论多少元素,只会返回第一个元素节点的值
              * 设置:找到多少元素就会设置多少元素
              * 设置:如果没有设置节点不存在,系统自动增加节点
              *
              */

             //返回第一个元素节点的值
             var span = $('span').attr("class");
             // console.log(span);
             //设置找到的所有元素节点的
             // var sqpn = $('span').attr('class','box')
             //增加一个元素节点
             // $("span").attr("name","abc");


         //    删除removeAttr(name)
         //    清楚所设置的节点元素
         //     $("span").removeAttr("class name")

             /**
              *  prop(n|p|k,v|f)1.6+
              *  使用方法和attr同样
              *
              *  注意点:
              *  prop可以操作扩展节点,还可以操作属性节点
              *  如果同时设置两个prop,后者会覆盖前者
              */
             $("span").prop("demo","nj1");
             //
             // $("span").prop("class","box")
             // $("span").prop("name","nj1")

         //    删除
         //
         //     $('span').removeProp("demo");

             //判断是否勾选
             console.log($("input").prop("checked"));//返回结果为true/false
             console.log($("input").attr("checked"));//返回结果为输入checked/undefined
         });

  

attr与prop练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo4-节点练习</title>
    <script src="../js/jquery-1.10.2.js"></script>
    <script>
        $(function () {

        //1、获取button元素
       var but =  document.getElementsByTagName("button")[0];
        but.onclick = function () {
            //2、获取输入框的值
           var input =  document.getElementsByTagName("input")[0];
           var text = input.value;
            //attr获取DOM元素节点
            $("img").attr("src",text);
        }
        })


    </script>
</head>
<body>
<input type="text">
<button>点击切换图片</button>
<br>
<img src="https://www.baidu.com/img/bd_logo1.png?qua=high&where=super" alt="">
</body>
</html>

  

学习JQ会发现很多有趣的东西,希望在学习朋友和伙伴加油

原文地址:https://www.cnblogs.com/yuyang123/p/9859335.html