jQuery基础

我使用的是未压缩版本的jQ文件,你们可以使用压缩版的

什么是jQuery呢?

    jq呢就是一个快速 、小型且功能丰富的JavaScript库,它使用一个在多种浏览器上工作易于使用的API

使得HTML文档便利和操作 事件处理 动画和Ajax等工作变得更加简单,随着多功能性和可扩展性的结合
jq改变了数百万人编写js的方式 

<style>
            p{
                 100px;
                height: 100px;
                margin-top: 20px auto;
            }</style>
    </head>
    <body>
        <input type="button" value="给盒子设置边宽" id="btn" />
        <p></p>
        <p></p>
        <p></p>
    </body>
    <script src="jquery-3.5.1.js"></script>
    <script>
        $(document).ready(function(){
            $("#btn").click(function(){
                $("p").css("border","1px red solid");
            });
        });

jQ有哪些版本?之间的区别又有哪些?

所以简略说一下

官网可以下载所有的jQ文件,而这些jQ文件又有不同的版本号,适用于不同的浏览器

不同的版本号
JQuery 1.x  已经不更新了 支持老浏览器 IE6-8 Opera等
JQuery 2.x  已经不更新了 不支持浏览器
JQuery 3.x  正在更新中 不支持浏览器

每个版本有压缩和未压版的(压缩版有后缀min,想要查看源代码可以使用未压缩版的,所占空间较大)
压缩版的 是用于生产环境 实际开发过程
未压缩版的 适用于开发测试

什么是入口函数呢?入口函数有几种写法?jQ的入口函数与原生之间的区别又有哪些?

<script>
            // 1.入口函数的第一种写法
            /* $(document).ready(function(){
                console.log("我是第一种入口函数的写法");;
            }) */
            
            // 第二种 简化版 使用较多
            /* $(function(){
                console.log("我是第二种入口函数写法");;
            }) */
            
            // 3.jQuery的入口函数与原生的区别
            /* a.原生的入口函数只能写一个,如果写多个 后面的将前面的覆盖掉 前面的代码多不会执行
            jQuery的入口函数可以写多个
            
            b.执行时机
            原生入口函数  等到所有的页面(dom树 外部的js文件 外部的css文件 图片)加载完毕后才会执行
            jQ的入口函数可以写多个 */
            
            window.onload = function(){
                console.log("我是原生的入口函数");
            }
            $(function(){
                console.log("我是jQ的入口函数");
            })
        </script>

接下来说一下"$"他到底是什么

// 1如果没有引入jq文件 那么就会报错 Uncaught ReferenceError : is not defined 那么说明一定是jq文件未引入
            /* $(function(){
                console.log();
            }) */
            //2. $从jQuery文件来的 那么它到底是什么?
            /* (function(){
                
        .    })(window.Function(){
            // 给window对象添加一个jq方法和$方法 对应的值是一个函数
                window.jQuery = window.$ = jQuery;
            }) */
            /* 3.script标签引入外部js的一个特点
            如果引入外部的js文件 那么会不会在引入之后 就直接执行这个js文件里面的代码? 会
            那么对于jQuery也一样 jQuery文件是一个自执行函数 当我们引入jQuery文件的时候 就会自动执行
            window.jQuery = window.$ = jQuery; 是不是也执行了? */
            
            // 引入jQuery文件后 直接把$ 和jQuery方法 作为属性给了window
            console.log(window);
            
            console.log($ === jQuery);  // true
            console.log(window.$ === window.jQuery); //true
            
            // 入口函数 可以使用$ 也可以使用jquery
            jQuery(function(){
                console.log(...);
            })
            // 4.$既然是一个函数 那么它也可以传入多种参数
            /* 如果传入的参数是一个匿名函数 那么$就是一个入口函数
            如果传入的参数是一个字符串 那么$就是一个选择器获取元素
            如果传入的参数是一个dom元素 那么$就是把这个DOM元素在转换成jQuery对象 */

DOM对象和jQuery对象转换和使用

<body>
        <div class="box"id="first"></div>
        <div class="box"id="one1"></div>
        <div class="box"id="one1"></div>
        <script src="./jquery-3.5.1.js"></script>
        <script>
//             1 使用DOM元素(原生js的方法)给div添加属性
//             原生js选择器获取到的是dom对象 document.getElementsByClassName()
//             原生的DOM元素只能选用dom属性或者方法 不能调用jQuery的方法
            var first= document.getElementById("first");
            console.log(first);
            
            // first.css("backgroundColor","green“); //报错 first.css is not a function 
            // first.style.backgroundColor = "green";
            
            /* //2.使用jQuery对象
            使用jQuery选择器获取都得是jQuery对象
            只能调用jQuery的方法 不能调用原生的 */
            var $first = $("first"); //获取到的是jQuery对象 保存jQuer1对象变量命名的时候最好使用$开头
            console.log($first);
            
            // $first.css("backgroundColor","green“);    //jQuery对象调用jQuery方法
            // $first.style.backgroundColor = "green";  // 保错 不能调用原生的方法或者属性
            
            // 3.jQuery对象是什么?
//             根据特征来看 向数组 验证是不是数组
//             jQuery 对象算是一个伪数组  不能调用数组里面的方法
            console.log($first.__proto__ === Array.prototype);    // false
            console.log(Object.prototype.toString.call($first));     // [object Object]

            
            // 4.DOM和jQuery对象的相互转换
            // dom元素转换成jQuery对象 : 直接把dom作为参数传递给$方法
             var $divFirst = $(first);
             console.log($divFirst);

            
            // 把jQuery对象转换成dom元素 直接使用下标取值 获取到的就是dom元素
            $divs = $("div");
            console.log($divs);
            var divFirst = $divs[0];
            console.log(divFirst);
            
            // 调用jQuery的get方法 参数传索引
            var divTwo = $divs.get(1);
            console.log(divTwo);
        </script>

设置文本和获取样式的方法

<style>
            .diva{
                 100px;
                background-color: darkgray;
                border: 4px solid aqua;
            }
        </style>
    </head>
    <body>
        <button id="getbtn">获取文本</button>
        <button id="setbtn">设置文本</button>
        <input type="button" value="获取样式" id="getBtn1" />
        <input type="button" value="设置样式" id="setBtn1" />
        <div id="div1" id="box">
            我是div盒子
            <p>我是一个p标签
                <span>我是一个span标签</span>
            </p>
        </div>
        <div id="div1">
            我是div盒子
            <p>我是一个p标签
                <span>我是一个span标签</span>
            </p>
        </div>
        <div class="diva" style="height: 100px;"></div>
        <div class="divb" style="height: 100px;"></div>
        <div class="divc" style="height: 100px;"></div>
        <script src="./jquery-3.5.1.js"></script>
        <script>
            // text() 获取和设置文本的方法
            // 可以获取到元素自生的文本 也可以获取到后代中元素中的文本
            $(function() {
                        $("getbtn").click(function() {
                            var text = $(".div1").text();
                            console.log(text);

                            // 获取全部的文本
                            console.log($("div").text()); //封装里面的迭代的方法    隐式迭代
                        })
                        // 2.设置文本
                        /* 只需要给text(参数) 加了参数后 就是给元素设置文本
                        会覆盖元素原有的方法
                         如果新设置的文本中包括了标签 那么他是不会解析标签的 当做文本内容来解读
                         */
                        $("#setbtn").click(function() {
                            // 我要给box这个盒子设置文本
                            $("#box").text("<a>我是新设置的</a>");
                        })
                        // 样式的方法
                        // css用来获取或者设置样式的党发
                        $("#getBtn1").click(function() {
                            // 获取div的样式
                            console.log($(".diva").css("height"));
                            console.log($(".diva").css("border"));

                            // 在所有的IE浏览器中 要写准确的样式
                            console.log($("diva").css("border-top-width"));
                            console.log($("diva").css("border-top-color"));
                        }) 
                        // 2.设置div这个盒子的样式
                        // 使用js方法设置样式
                        $("#setBtn1").click(function() {
                            /* $(".div1").css("width",300);
                            $(".diva").css("width","300px");
                            $(".diva").css("height","300px");
                            $(".diva").css("background-color","red");
                            $(".diva").css("border","5px solid pink"); */

                            // 3.使用css设置样式
                            $(".diva").css({
                                 "300px",
                                "height": 300,
                                //background-color : "red",    //如果属性名不用引号引起来 那么就换成驼峰命名法
                                "background-color": "red",
                                border: "10px solid gols"
                            })
                        })
                    })
        </script>
原文地址:https://www.cnblogs.com/zycs/p/12886195.html