整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

关于JQuery引用及基本用法

关于JQuery引用及基本用法

在JQuery文件中下载,并将其引入html文件。在使用jQuery之前,我们需要到jQuery的官方网站:“https://jquery.com/download/”

把下载好的文件放到工程根目录下,然后在这个根目录下创建index.html文件。最后,将下载的JQuery文件引入index.html文件,其代码如下:

<!DOCTYPE html>

<html lang="en">



<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<script src="jquery-3.5.1.min.js"></script>

</head>



<body>

</body>



</html>

1234567891011121314151617181920212223242526272829复制代码类型:[html]

通过引入script标签,JQuery被引入到subject的subject中,subject是:

接下来,我们将研究JQuery的基本语法,并对其进行一些介绍。

示例1:$("div").hide();此行表示隐藏div元素;

例子2:$(".box1").hide();这行代码意味着class属性隐藏在box1的元素中;

示例3:$("#wrap").hide();这行代码表示隐藏元素id的值为wrap;

示例4:$("hide.box1").hide();这一行代码意味着,隐藏带有box1的cycle属性的hv元素;

从上面的例子中可以看出,JQuery语法非常简单,只需要一个美元符号$,后面跟着一个html的元素选择符(与我们之前学到的css选择符高度一致),然后在后面加上JQuery的方法,例如hide(show等等)。

无论显示或隐藏元素时,都需要一个事件来触发该动作,我们常用的触发方式是鼠标点击,比如你用鼠标点击一个按钮,然后页面上就会弹出一个提示框,通过点击来触发效果,我们称之为“事件”。点击JQuery中事件的书写方式为:$("div").click(function(){...}),此代码意味着在div标签被点击之后触发事件,具体事件内容以函数形式写入。除单击事件外,JQuery还可以通过鼠标移动事件、双击事件、元素获取焦点事件等方式进行学习,后面我们将一一介绍,并查看JQuery如何使用。

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<script src="jquery-3.5.1.min.js"></script>

</head>

<style>

.box1 {

width: 100px;

height: 100px;

background-color: red;

}

</style>



<body>

<button id="btn1">点我隐藏元素</button>

<div class="box1"></div>

</body>

<script>

$(document).ready(function(){

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

$(".box1").hide();

})

})

</script>

</html>

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253复制代码类型:[html]

在以上代码中,我们定义了一个button元素,一个div元素,然后点击按钮button,这个div元素就会被隐藏起来,各位同学可以尝试一下。在代码的最后一部分,包含了一段script标签,这段是JavaScript代码,所有的JavaScript代码都将被放置在script标签中以执行。

接下来是代码的第一句话:$(document).ready(function){...},这是JQuery的固定写法,意思是页面加载后立即执行,执行代码被写入function函数的方法中(即{}内)。我们已经看到了这一方法。

$("#btn1").click(函数){

$(".box1").hide();

})

这个代码就是我们前面提到的click事件,当单击id值为btn1的按钮时,会引发一个click元素的隐藏事件,click元素的名字叫做box1。

.JQuery

JQuery 是将 JS 的一些代码块进行封装,方便使用。

1.JQ的引入

(1)link 导入

先进入 https://www.bootcdn.cn/ 网站进行查找,找到后复制到一个 js 中,进行引用。

(2)直接复制标签

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>

二.JQ JS 相互转换

1. JQ 获取元素

$('.p1').eq(1).text('今天天气真好')
    $('.p1').html('<h>天气真热</h>')

2.JS 转 JQ

$(ap1).text('天好冷')

3. JQ 转 JS

	var ap3=$('.p1')
    ap3[0].innerText='金地是'
    ap3.get(1).innerText='多少金币' //get() 传下标

4. JQ JS 都可用

$('ul li').each(function (){
        console.log($(this).text());
        // console.log(this.innerText);
        console.log($(this).index()); //jq 获取下标

    })

三.JQ 操作 HTML 属性

<button>添加</button>
<button>删除</button>

1. 添加 class

//添加class
    $("button").eq(0).click(function (){
        $("div").addClass("div1")
    })

2. 删除 class

(1)removeClass

//删除class
    $("button").eq(1).click(function (){
        $("div").removeClass("div1")
    })

(2)removeAttr

//删除属性和属性值
    $("button").eq(1).click(function (){
$("div").removeAttr("class")

3. 修改 class

(1)toggleclass

//无则增 有则增
 $("button").eq(0).click(function (){
 	$("div").toggleClass("div1")

(2)attr

//无则增 有则改
$("button").eq(0).click(function (){
        $("div").attr("class","div1")
        $("div").attr("class","div2")
    })

4.获取 value

$("input").eq(0).val('666');

四.JQ 操作 CSS 样式

1. 获取盒子宽高

(1)获取宽

console.log($("div").width());

(2)获取内边框加宽

$("div").innerWidth()

(3)获取内边框,边框外边距和宽的宽度

$("div").outerWidth()

2. JQ 修改 CSS

// jq修改css
   $("div").css("background","blue")
   $("div").css({
       "background":"pink",
       "width":"150px"
   })

3.定位元素(父级元素一定要有定位)

$(".div2").position()

4.定位浏览器窗口

$(".div2").offset()

五. JQ 事件

1.单击事件

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

2.双击事件

$("div").dblclick(function (){
        console.log(2);
    })

3.划入事件

$("div").mouseenter(function (){
        console.log(3);
    })

4.划出事件

$("div").mouseout(function (){
        console.log(4);
    })

5.划入划出事件

$("div").hover(
        function (){
            console.log(3);
        },function (){
            console.log(5);
        }
    )

6.绑定事件

$("button").click(function (){
        $("p").on("click",function (){
            $("p").css('background','red')
        })
    })

7.绑定多个事件

$("p").on({
         "mouseenter":function (){
             $(this).css('background','yellow')
         },
         "mouseout":function (){
             $(this).css('background','blue')
         }
     })

8.清除事件

$("button").click(function (){
        $("p").off()
    })

六. JQ 动画

1. 隐藏

$("button").eq(0).click(function (){
        // $("div").hide(1000)
        $("div").slideUp(1000)

    })

2.显示

$("button").eq(1).click(function (){
        $("div").show(1000)
        // $("div").slideDown(1000)
    })

3.取反

$("button").eq(2).click(function (){
        $("div").slideToggle(1000)
        // $("div").slideDown(1000)
    })

4.淡出事件

$("button").eq(3).click(function (){
        $("div").fadeOut(1000)
    })

5.淡入事件

$("button").eq(4).click(function (){
        $("div").fadeIn(1000)
    })

6.淡入淡出取反事件

$("button").eq(5).click(function (){
        $("div").fadeToggle(1000)
    })

7.动画效果

$("button").eq(6).click(function (){
        $("div").delay(100).animate({
            "width":"130px",
            "height":"130px",
            "top":"50px",
            "left":"20px",
        })
    })

8.停止

$("button").eq(7).click(function (){
        $("div").stop(1000)
    })

附(今日份学习):

了执行Javascript,需要在HTML文件内以特定的方式书写JavaScript的代码,JavaScript的书写方法有多种,其执行的流程也各不相同:

1 <script>标签嵌入

此种嵌入方法无法操作<script>之后的DOM元素。因为<script>之后的DOM元素还未构造,因此在<script>标签内就无法取得位于其后的DOM元素。

2 读取外部JavaScript文件

此种嵌入方法可以指定defer、async属性。defer可以推迟执行,async可以异步执行。

3 onload嵌入

此种嵌入方法在页面读取完后再对其执行,所以可以对所有的DOM元素操作。

<body onload="alert('hello')">
window.onload=function(){alert('hello');};

当window.onload事件触发时,页面上所有的DOM、样式表、脚本、图片、flash都已经加载完成了。

//window.onload不能同时编写多个。
//以下代码无法正确执行,结果只输出第二个。
window.onload=function(){
  alert("test1");
};

window.onload=function(){
  alert("test2");
};

//$(document).ready()能同时编写多个
//结果两次都输出
$(document).ready(function(){ 
   alert("Hello World"); 
}); 
$(document).ready(function(){ 
   alert("Hello again"); 
}); 

window.onload和body中onload也有些许区别:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.js"></script>
    <script language="javascript">
        window.onload=haha;
        function haha(){console.log("window.onload");}

        if(document.addEventListener){
            function DOMContentLoaded(){
                console.log("DOMContentLoaded");
            }
            document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
        }</script>
</head>
<body onload="console.log('bodyonload');">
        <div id="div1">a</div>
</body>
</html>

在IE10和FireFox下,结果为 :

"DOMContentLoaded"
"bodyonload"

说明body中的onload会覆盖window.onload

在chrome下,结果为:

DOMContentLoaded
window.onload
bodyonload

然后,如果把javascript代码移到最下面,结果又会是什么样呢?

chrome和IE10、FireFox的结果竟然是一样的:

DOMContentLoaded
window.onload

IE 10、Fire Fox可以理解,window.on load和body中的 on load 谁在下面就是谁覆盖谁,只会执行后面的那个。

4 DOM ContentLoaded嵌入

onload方法可能需要等待时间,而本方法可以在完成HTML解析后发生的事件,减少等待时间。

在chrome、IE10和FireFox中,执行结果是:DOMContentLoaded然后才是onload的输出。所以说一般情况下,DOMContentLoaded事件要在window.onload之前执行,当DOM树构建完成的时候就会执行DOMContentLoaded事件。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript" src="jquery2.js"></script>
    <script language="javascript">
        window.onload=haha;
        function haha(){console.log(document.getElementById("div1"));}
        if(document.addEventListener){
            function DOMContentLoaded(){
                console.log("DOMContentLoaded");
            }
            document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
        }
    </script>
</head>
<body>
    <div id="div1">a</div>
</body>
</html>

如果你是个jQuery使用者,你可能会经常使用$(document).ready();或者$(function(){}),这都是使用了DOMContentLoaded事件

5 动态载入JavaScript文件

5.1 使用原生js方法

动态创建script标签,并指定script的src属性

function loadJs(url, callback) {
    var script=document.createElement('script');
    script.type="text/javascript";
    if (typeof(callback) !="undefined") {
        if (script.readyState) {
            script.onreadystatechange=function() {
                if (script.readyState=="loaded" || script.readyState=="complete") {
                    script.onreadystatechange=null;
                    callback();
                }
            }
        } else {
            script.onload=function() {
                callback();
            }
        }
    }
    script.src=url;
    document.body.appendChild(script);
}
loadJs("test.js", function() {
    alert('done');
});

还可以使用同样的原理动态加载css文件,只不过插入的的父节点是head标签。

5.2 使用document.write/writeln()方式

该种方式可以实现js文件的动态加载,原理就是在重写文档流,这种方式会导致整个页面重绘。

document.writeln("<script src=\"http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js\"></script>");

需要注意的是特殊字符的转义。

5.3 使用jQuery

使用getScript(url,callback)方法实现动态加载js文件

$.getScript('test.js',function(){
    alert('done');
});

-End-