初学jQuery(1):简介+jQuery对象+jQuery函数+jQuery选择器+jQuery常用事件+css样式设置

jQuery

1、简介

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后有一个优秀的轻量级Javascript库,是对ECMAScript、dom、bom的一个浅封装(轻量库)。jquery倡导写更少的代码,做更多的事情,简化JS开发。这里的叫原生JQuery,还有一类是jQuery-Ajax,功能和ajax类似,不过进行了简单的封装。

jQuery库主要功能有:

  • 简化HTML文档操作
  • 事件处理
  • 动画设计
  • Ajax交互(ajax的交互就是jquery-ajax来做了)

可以这么理解jQuery框架:
就是将原本js代码中重复的部分进行了封装,例如:纯js写的代码如下

<body>
	<div id="test1">测试1</div>
 	<div id="test2">测试2</div>

    <script>
        var test1 = document.getElementById("test1");
        var test2 = document.getElementById("test2");
        alert(test1.innerHTML);
        alert(test2.innerHTML);
    </script>
</body>

这样显得代码重复,不够简洁,那我们将其抽取封装到方法中,就可以做到简化代码,如下:

<body>
    <div id="test1">测试1</div>
    <div id="test2">测试2</div>
    <script>
        get("test1");
        get("test2");
        function get(id){
            var test = document.getElementById(id);
            alert(test.innerHTML);
        }
    </script> 
</body>

并且此时如果我们将这个get函数抽调到单独一个js文件中,并且在html文件引入这个封装了get方法的js文件就可以进行方法的调用,这就是框架的雏形,如下:

function get(id){
    var test = document.getElementById(id);
    alert(test.innerHTML); 
}
<script src="封装的js文件路径"></script>
<body>
    <div id="test1">测试1</div>
    <div id="test2">测试2</div>

    <script>
        get("test1");
        get("test2");
    </script> 
</body> 

此时,我们还是嫌js文件不够简洁,方法名难记,便把方法名用$代替,简化后如下:

function $(id){
    var test = document.getElementById(id);
    alert(test.innerHTML); 
} 
<script src="js文件路径"></script> 
<body>
    <div id="test1">测试1</div>
    <div id="test2">测试2</div>

    <script>
        $("test1");
        $("test2");
    </script>
</body> 

这样就组成了jQuery框架

1.1 jQuery框架安装引入

1.1.1 下载

官网下载jquery库

一般我们在下载jquery文件或者引用cdn网站的jquery文件的时候,通常我们选择jquery.js或者jquery.min.js版本,而它们的区别在于jquery.min.js是没有缩进的、体积更小,适用于部署环境。而jquery适用于源码研究,我们对于jquery的学习,应该要上升到源码层次。

1.1.2 引入

jQuery库是一个JavaScript文件,可以使用HTML的<script>标签引用,但需要注意引入的jQuery的版本要和API手册版本/开发使用一致,例如

  <!-- 本地引入 -->
  <script src="../../jquery-3.5.1/jquery-3.5.1.js"></script>
---------------------------------------------------------------------------------------
  <!-- 通过cdn引入  在线引入  通常采用 -->
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
1.1.3 jQuery的基本使用

js写在body标签中时

<!-- 在线引入jQuery -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <div id="div1">hello</div>
    <script>
        var div1 = $("#div1");
        alert(div1); //返回的是一个对象
        alert(div1.html());
        //通过html()方法返回div标签中的内容,html()方法是封装在jQuery中返回标签内容的方法,相当于innnerHTML
    </script>
</body>
1.1.4 查看jquery的版本

在浏览器的Console窗口中使用$.fn.jquery命令查看当前jQuery版本
在这里插入图片描述

2、jQuery对象

2.1 介绍

jQuery对象是类数组对象,jQuery的方法都是对类数组中的元素的批量操作。

注意:jQuery对象可以调用jQuery.prototype中声明的方法,js对象则不能调用。在使用jquery的时候,拿到一个对象务必要搞明白该对象是js对象还是jQuery实例

2.2 与js对象的联系与区别

以下省略jq的引入,对比如下代码:

<div class="div1">div1...</div>
<div class="div2">div2...</div>
<script>
    //1. 通过js方式获取名称叫做div的所有html元素对象
    var js = document.getElementsByTagName("div"); // 获取到的是js对象
    
    alert(js); // 输出js对象:[object HTMLCollection]
    console.log(js.length); // 获取返回的数组长度  结果:2
    
    // 对获取到的js对象中所有的div让其标签体内容都变为aaa,js方式实现
    for(var i = 0; i<js.length; i++){
        js[i].innerHTML = "aaa";
    }
</script>

<div class="div1">div1...</div>
<div class="div2">div2...</div>
<script>
    //2. 通过jq方式获取名称叫做div的所有html元素对象
    var $jq = $("div"); //获取到的是jq对象
    
    alert($jq) //输出jQuery对象:[object Object]
    console.log($jq.length); //获取返回的数组长度  结果:2
    
    //对获取到的js对象中所有的div让其标签体内容都变为bbb,jq方式实现
    $jq.html("bbb");
</script>

2.3 jQuery对象与js对象的相互转换

为什么要进行转换呢?虽然JQuery对象在操作时更加方便,但是jQuery对象和js对象中的方法不通用,所以有时要进行转换。

  • js转jq:格式:$(js对象);
<div class="div1">div1...</div>
<div class="div2">div2...</div>

<script>
   //通过js方式获取名称叫做div的所有html元素对象
   var js = document.getElementsByTagName("div"); //获取到的是js对象

   for(var i = 0; i<js.length; i++){
       // js[i].innerHTML = "aaa"; //原先js方式修改标签体内容
       //将js对象转换为jq对象,并调用jq中的html()方法修改标签体内容
       $(js[i]).html("aaa");
   }
</script>
  • jq转js:格式:jq对象[索引] 或者 jq对象.get(索引)
    <div class="div1">div1...</div>
    <div class="div2">div2...</div>
    <script>
        //通过jq方式获取名称叫做div的所有html元素对象
        var $jq = $("div"); //通过封装起来的标签选择器获取对象的方法获取到jq对象
     
    	//原先jq方式修改改标题内容
        // $jq.html("bbb"); 
        
        //jq转js,调用js中的innerHTML修改标签体内容
        for(var i = 0; i<$jq.length; i++){
            $jq[i].innerHTML="aaa";
            // $jq.get(i).innerHTML = 'aaa';
        }
    </script>

3、jQuery基本函数简介

3.1 $与jQuery函数

$和jQurey是jQuery中的函数,查看jquery源码可以看到jquery本质是一个函数,jquery向外暴露的就是一个jquery函数,该函数会返回一个jqurey实例对象。

// Define a local copy of jQuery
jQuery = function( selector, context ) {
	// The jQuery object is actually just the init constructor 'enhanced'
	// Need init if jQuery is called (just allow error to be thrown if not included)
	return new jQuery.fn.init( selector, context );
};
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入jQuery库 -->
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
</body>
</html>
<script>
	// ready()是jq的一个入口函数
    $(document).ready(function(){
        console.log($);
        console.log(jQuery);
        console.log($===jQuery);
    })
</script>

结果如下:
在这里插入图片描述
说明$就是jQuery函数对象。

3.2 入口函数

这个入口函数与网页中html、js、style等的加载顺序有关,当script写在head标签中时,网页会先加载script,然后才会加载html中的整体内容,这就导致网页可能会显示不出来,而这个入口函数就是让script中的代码在网页加载完html之后再加载,这样就能保证网页的基本框架先出来。(不过咱一般会把script标签写body里面并且靠近后面的位置)

3.2.1 js中的入口函数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.onload = function(){
            var btn = document.getElementsByClassName("btn")[0];
            btn.onclick = function(){
                alert("原生js入口函数");
            }
        }
    </script>
</head>
<body>
    <button type="button" class="btn">原生js入口函数</button>
</body>
</html>

3.2.2 jquery入口函数的写法
  • 第一种写法:window.onload = function(jq代码)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        window.onload = function(){
            $(".btn").click(function(){
                alert("jQuery入口函数第一种方式");
            })
        }
    </script>
</head>
<body>
    <button type="button" class="btn">jQuery入口函数</button>
</body>
</html>

  • 第二种写法:$(function(){jQuery代码})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
       $(function(){
            $(".btn").click(function(){
                alert("jQuery入口函数第二种方式");
            });
        })
    </script>
</head>
<body>
    <button type="button" class="btn">jQuery入口函数</button>
</body>
</html>

  • 第三种写法:$(document).ready(function(){ //...});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
       $(document).ready(function(){
            $(".btn").click(function(){
                alert("jQuery入口函数第三种方式");
            });
        })
    </script>
</head>
<body>
    <button type="button" class="btn">jQuery入口函数</button>
</body>
</html>
  • window.onload和$(function(){})的区别

window.onload只能定义一次,看如下代码:

<script>
    function fun1(){
        alert("1");
    }
    function fun2(){
        alert("2");
    }
    window.onload = fun1;
    window.onload = fun2;
</script>

此时结果是只显示2,因为,fun2()的结果覆盖住了fun1()的结果,所以显示2,也就是说如果window.onload定义了多次,那么后面的会覆盖掉前面的


$(function())可以定义多次,如下:

<script>
    function fun1(){
        alert("1");
    }
    function fun2(){
        alert("2");
    }    
    $(fun1);    
    $(fun2); 
</script>

结果就是两者都执行了,都弹出各自的值

  • Jquery与javascript入口函数的区别

(1)jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行
(2) JavaScript 的
window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。

3.3 jquery函数$的使用方式

  • 1、作为一般函数调用:$(param)

param有如下取值
1)参数为函数:当DOM加载完成后执行此回调函数
2)参数为选择器字符串:查找所有匹配的标签,并将它们封装成jquery对象
3)参数为DOM对象:将dom对象封装成jquery对象
4)参数为html标签字符串(用的少):创建标签对象并封装成jquery对象

  • 2、作为对象使用:$ .xxx()调用方法

例如:
$.each() 隐式遍历数组
$.trim() 去除两端的空格

4、jQuery选择器

  • jquey的事件绑定

常用的事件和js中的差不多,只是代码形式上有些许区别,如下:

<button type="button" id="btn">点我没好果子吃</button>
<script>
    //给按钮添加单击事件
    $("#btn").click(function(){
        alert("有你好果子吃!!!")
    })
</script>

$(“#btn”)表示通过id选择器获取jq对象,然后再通过click函数添加点击事件。同js中一样,jquery将获取元素对象的函数封装起来了,并且提供更加简单的方式供使用。下面是jQuery中各类选择器的介绍与使用。

4.1 基本选择器

1、标签(元素)选择器
语法:$("html标签名")
作用:获得所有匹配标签名称的元素

2、id选择器
语法:$("#id属性值")
作用:获得与指定id属性值匹配的元素

3、类选择器
语法:$(".class属性值")
作用:获得与指定class属性值匹配的元素

4、并集选择器
语法:$("标签元素1,标签元素2...)
作用:选择多个元素

5、选取所有标签元素
$("*")

6、选取当前HTML元素
$(this)

4.2 层级选择器

1、后代选择器
语法:$(A B)
作用:选择A元素内部的所有后代元素B

2、子选择器
语法:$(A>B)
作用:选择A元素内部的所有直接子元素B

3、兄弟选择器
语法:$(A + B)
作用:选择所有紧接在A之后的第一个B元素

语法:$)(A ~ B)
作用:选择在A之后的并且与A同级的第一个B元素

4.3 属性选择器

1、属性名选择器
语法:$("A[属性名]")
作用:包含指定属性的选择器

2、属性值选择器
语法:$("A[属性名='值']")
作用:包含指定属性等于指定值的选择器

3、复合属性选择器
语法:$("A[属性名='值'][]...")
作用:包含多个属性条件的选择器

4、属性过滤选择器
(1)语法:$("[属性名!="值"]")
作用:选取所有带有指定属性名并且其属性值不等于指定值的元素

(2)语法:$("[属性名$="值"]")
作用:选取所有带有指定属性名并且其属性值是以指定值结尾的元素。

(3)语法:$("[属性名^="值"]")
作用:选取所有带有指定属性名并且其属性值是以指定值开始的元素。

(4)语法:$("[属性名*="值"]")
作用:选取所有带有指定属性并且其属性值是含有指定值的元素

4.4 过滤选择器

1、首元素选择器
语法::first
作用:获得选择的元素中的第一个元素

2、尾元素选择器
语法::last
作用:获得选择的元素中的最后一个元素

3、非元素选择器
语法::not(selector)
作用:不包括指定内容的元素,selector是选择器。

4、偶数选择器
语法::even
作用:从0开始计数

5、奇数选择器
语法::odd
作用:从0开始计数

6、等于索引选择器
语法::eq(index)
作用:等于指定索引的元素

7、大于索引选择器
语法::gt(index)
作用:大于指定索引的元素

8、小于索引选择器
语法::lt(index)
作用:小于指定索引的元素

9、标题选择器
语法::header
作用:获得标题元素,固定写法

4.5 表单过滤选择器

1、可用元素选择器
语法::enabled
作用:获得所有可用元素
2、不可用元素选择器
语法::disable
作用:获得不可用元素
3、选中选择器
(1)语法::checked
作用:获得单选/复选框中的元素
(2)语法::selected
作用:获得下拉框选中的元素(下拉框也有多选和单选)

5、jQuery事件

5.1 常用事件

简单罗列下常用的事件:

常用jQuery事件快速绑定方法
1. $(document).ready(fn)
$(document).ready()方法允许我们在文档完全加载完后执行函数
2. click([data],fn)
click()方法是当点击事件被触发时会调用一个函数,并且可以传data数据给fn函数进行数据
3. dbclick([data],fn)
当双击元素时,会发生dbclick事件,调用fn函数,data可以作为数值传给fn。
4. mouseenter([data],fn)
当鼠标指针穿过元素时,会发生mouseenter事件,调用fn函数,data作为参数值传给fn函数
5. mouseleave([data],fn)
当鼠标指针离开元素时,会发生mouseleave事件
6. mousedown([data],fn)
当鼠标指针移动到元素上方,并按下鼠标按键时,会发生mousedown事件
7. mouseup([data],fn)
当元素上松开鼠标按钮时,会发生mouseup事件
8. hover([mouseenter][mouseout])
hover()方法用于模拟光标悬停事件。当鼠标移动到元素上时,会触发指定当第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定当第二个函数(mouseleave)
9. blur([data],fn)
当元素失去焦点时,发生blur事件
10、focus([[data],fn])
当元素获得焦点时,触发 focus 事件。
11. keydown()
键盘事件:按键按下事件
12. keyup([data],fn)
键盘事件:按键抬起事件
13、keypress([[data],fn])
当键盘或按钮被按下时,发生 keypress 事件。
keypress 事件与 keydown 事件类似。当按钮被按下时,会发生该事件。它发生在当前获得焦点的元素上。 不过,与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件。注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。
14、resize([[data],fn])
当调整浏览器窗口的大小时,发生 resize 事件
15、scroll([[data],fn])
当用户滚动指定的元素时,会发生 scroll 事件
16、select([[data],fn])
当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。
17、submit([[data],fn])
当提交表单时,会发生 submit 事件


5.2 绑定事件的方式

1、标准绑定方式
jq对象.事件类型(回调函数)

事件类型就是5.1 节中介绍的常用事件类型

2、on绑定事件/off解绑事件
jq对象.on("事件类型",回调函数)
jq对象.off("事件类型")

on()方法其实还有两个参数,例如选择器字符串selector,以及传递给事件处理程序的参数event.data。


还有一个特殊的点是能使代码简化:当一个事件返回值是true或者false时,后面的回调函数可以直接用false或true代替,例如$("form").on("submit", false)

3、bind绑定事件/unbind解绑事件
jq对象.bind("事件类型","参数(可选)",回调函数)
jq对象.unbind("事件类型",回调函数(可选))

bind()方法中可以同时绑定多个事件,事件类型之间用空格分隔,执行同一个事件处理程序;也可以同时绑定多个事件类型和执行多个对应事件处理程序。
目前这个方法已经被3.0版本以上弃用了

测试:标准绑定方式

    <div id="div" style="background-color: red;width: 100px;height: 100px;"></div>
    <script>
        //绑定点击事件(一个事件)
        $("#div").click(function(){
            alert("我被点击了");
        })
        //同时绑定两个事件:鼠标移入和鼠标移除
        $("#div").mouseover(function(){
        	// 设置div的背景颜色为黄色
            $("#div").css("backgroundColor","yellow")
        })
        $("#div").mouseleave(function(){
        	// 设置div的背景颜色为绿色
            $("#div").css("backgroundColor","green")
        })

		/*
        //绑定多个事件时,也可以通过链式编程简化操作,如下:
        $("#div").mouseover(function(){
            $("#div").css("backgroundColor","yellow")
        }).mouseleave(function(){
            $("#div").css("backgroundColor","green")
        })
		*/
    </script>

测试:on绑定;off解绑

<input type="button" id="btn1" value="点击按钮1触发事件">
<input type="button" id="btn2" value="解绑按钮1绑定的事件">
<script>
    $("#btn1").on("click",function(){
        alert("我被点击了");
    })
    //将点击事件绑定在btn2上,btn2被点击后解绑btn1上绑定的事件
    $("#btn2").on("click",function(){
        $("#btn1").off("click");
        //$("#btn1").off(); //如果off后面不加参数,那么表示解绑组件上所有的事件
    })
</script>

当点击了第二个按钮后,第一个按钮的事件就被解绑了,也就不会再触发指定的事件了。

测试:bind()绑定,unbind()解绑

bind和on很相似,unbind()又和off很相似,使用方式都差不多,简单的就不写了,这里写个稍微复杂一丢丢点的例子

<body>
    <div>标题</div>
    <br>
    <button>新增</button>
    <button>修改</button>
    <button>解绑点击事件</button>


    <script>
        //绑定事件
        /*        
            $("button").bind("click","123",function(event){
            console.log(event); //这里的event是事件处理对象,里面包含事件的信息
            console.log(event.data); //123,event对象中的data参数接收了传进来的参数123        
        }) 
        */

        //点击新增或者修改按钮,改变div内容区的内容
        $("button").bind("click",function(event){
            //可以通过event.target(获取dom节点,可以拿到元素及其内容)来判断当前是哪个按钮被点击
            //console.log(event.target); //<button>新增</button>
            //进一步可以直接获得纯文本内容
            //通过event.target.html()方法获取到的内容判断哪个按钮被点击
            if($(event.target).html() === '新增'){
                $("div").html("执行事件:新增学生信息");
            }else if($(event.target).html() === '修改'){
                $("div").html("执行事件:修改学生信息");
            }else if($(event.target).html() === "解绑点击事件"){
                //unbind()传入参数(事件名)表示解绑指定部件上指定事件
                $("button").unbind("click");
                $("div").html("已解绑");
                //unbind()不传入参数表示解绑本部件上所有事件
                // $("button").unbind();
            }
        })
    </script>
</body>

请添加图片描述
html()方法是jquery中获取文本内容的方法,可以看这里

通过标准绑定方式绑定事件也可以通过unbind()方法来解绑,格式:jq对象.unbind("事件类型",事件名称)如下:

<body>
    <input id="btn1" type="button" value="绑定事件">
    <input id="btn2" type="button" value="解绑事件">
    <script>
        //点击事件执行效果
        function clickEvent(){
            alert("绑定成功");
        }
        //绑定点击事件
        $("#btn1").click(clickEvent);
		//通过点击btn2按钮解绑btn1按钮绑定的事件
        $("#btn2").click(function(){
            $("#btn1").unbind("click",clickEvent);
            alert("成功解绑");
        })

    </script>
</body>

5.3 事件代理/事件委托

当同一个父元素的子元素有相同的事件处理程序时,可以利用事件代理/事件委托(事件冒泡原理)来将相同的事件绑定给父元素,以此提高代码效率。
如下:

<body>
    <button>点我</button>
    <div style="width:50px;height:30px;color:red;">点我</div>
    <script>
        //下面的button和div绑定的都是同一个事件
        //如果还有许多元素都要绑定这个clickEvent事件,那么肯定会增加浏览器负担
        
        function clickEvent() {
            alert("我被点击了");
        }
        /*         

        $("button").click(clickEvent);
        $("div").click(clickEvent);

         */

        //不如通过事件代理,直接将子元素中相同的事件绑定在父元素上
        //这里button和div的父元素是body,所以可直接将事件绑定在body上
        $("body").on("click",clickEvent);
       	//移除指定组件的事件代理
       	$("body).off("click","button"); //移除对button的事件代理
       	//$("body).off("click","div"); //移除对div的事件代理
       	
    </script>
</body>

6、jQuery设置css样式

  • 方法一:css(name,prop|[,function(index,value)])
  • 参数介绍:
    • 第一个参数是属性名
    • 第二个参数有两个选择,第一个选择是prop:表示属性值;第二个选择是function:是属性的回调函数,其第一个参数是元素在对象集合中的索引位置,value是原先的属性值
  • 作用:可以用来给指定元素动态设置css样式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <style>
        .div{
            /* 这里只设置了div的长和宽 */
            width: 100px;
            height: 100px;
        }
    </style>
    <script>
        // 给div设置新属性并添加属性值
        $(function(){
            $(".div").css("background-color","red");
        })
    </script>
</head>
<body>
    <div class="div"></div>
</body>
</html>
<script>
 $("div").click(function() {
    $(this).css({
      width: function(index, value) {
        return parseFloat(value) * 1.2;
      }, 
      height: function(index, value) {
        return parseFloat(value) * 1.2;
      }
    });
  });
</script>

还有以下方法,具体使用可以参考jquery中文网
(1)offset([coordinates]):获取匹配元素在当前视口的相对偏移
(2)position():获取匹配元素相对父元素的偏移
(3)scrollTop([val])和scrollLeft([val]):分别是获取匹配元素相对滚动条顶部和左边的偏移
(4)height([val|fn])/和width([val|fn]):分别是取得匹配元素当前计算的高度值(px)和宽度值(px)
(5)innerHeight()和innerWidth():分别是获取第一个匹配元素内部区域高度、宽度(包括补白、不包括边框)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值