JQuery——基本语法

    技术2022-07-11  133

    文章目录

    JQuery下载JQuery导入JQueryJQuery基础语法JQ对象和JS对象的区别JQ对象和JS对象的转换JQuery事件绑定入口函数JQuery入口函数JavaScript入口函数 JQuery样式控制选择器**1.** 基本选择器**2.** 层级选择器**3.** 属性选择器**4.** 过滤选择器**5.** 表单过滤选择器 DOM操作**1.** 内容操作**2.** 属性操作(1). 通用属性操作(2). 对class属性操作 **3.** CRUD操作

    JQuery

    JQuery是一个JavaScript框架,能够简化JS的开发,jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情,它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互

    下载JQuery

    可以在JQuery官网(https://jquery.com/)下载JQuery的js文件

    下载时有两种版本可以选择

    Production version,生产版本,实际开发中使用,源码经过压缩和精简,后缀名为.min.jsDevelopment version,开发版本,源代码有缩进及注释,可以查看源码,后缀名为.js

    导入JQuery

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

    JQuery基础语法

    $(选择器名称).action()

    示例:获取元素对象并输出标签体内容

    // JQuery var div_jq = $("#div"); alert(div_jq.html()); // JavaScript var div_js = document.getElementById("div"); alert(div_js.innerHTML);

    JQ对象和JS对象的区别

    通过JS获取页面上所有的div标签对象

    var divs = document.getElementsByTagName("div"); alert(divs); // 弹出 [object HTMLCollection] // 将所有div标签体内容更改为123 for (var i = 0; i < divs.length ; i++) { divs[i].innerHTML = "123"; }

    通过JQ获取页面上所有的div标签对象

    var $divs = $("div"); alert($divs); // 弹出 [object Object] // 将所有div标签体内容更改为456 $divs.html("456");

    通过以上代码可以发现,JQuery对象在操作时更加方便,但是JQuery对象和JS对象的方法是不通用的

    var div = document.getElementById("div"); div.html("123"); // 不生效,标签体内容不发生改变

    JQ对象和JS对象的转换

    JS对象转为JQ对象:$(JS对象)

    var div = document.getElementById("div"); var $div = $(div);

    JQ对象转为JS对象:JQ对象[索引] 或 JQ对象.get(索引)

    var $div = $("#div"); var div1 = $div[0]; var div2 = $div.get(0);

    JQuery事件绑定

    获取元素对象并绑定一个点击事件

    $(选择器).click();

    click方法括号内可以自定义匿名方法

    $(选择器).click(function(){ // 方法体 });

    示例

    $("#div").click(function () { alert("click"); });

    入口函数

    JQuery入口函数

    $(document).ready(function(){ // 执行代码 }); 或者 $(function(){ // 执行代码 });

    JQuery的入口函数是在DOM加载完毕后执行,且可以定义多次,后定义的入口函数不会覆盖之前的入口函数

    $(function () { alert("abc"); }) $(function () { alert("123"); })

    可以弹出 abc 和 123

    JavaScript入口函数

    window.onload = function () { // 执行代码 }

    JavaScript的入口函数是在页面所有内容,包括外部图片之类的文件加载完毕后执行,且只能执行一次,若定义了多个入口函数,则后面的函数会覆盖之前的函数

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

    只弹出 123

    JQuery样式控制

    // 单个属性 用逗号分隔属性与属性值 $("#div").css("color","white"); // 多个属性 用花括号框起,用冒号分隔属性与属性值,并用逗号分隔多个属性 $("#div").css({"color":"white","background-color":"red"});

    选择器

    筛选具有相似特征的元素(标签)

    1. 基本选择器

    ① 标签选择器(元素选择器)

    语法:$(“HTML标签名”) 获得所有匹配标签名称的元素 $("div"); // 选择页面上的所有 <div> 元素

    ② id选择器

    语法:$("#id属性值") 获得指定id属性值的元素 $("#div1"); // 选择id为 div1 的元素

    ③ 类选择器

    语法:$(".class属性值") 获得指定class属性值的元素 $(".div2"); // 选择所有class值为 div2 的元素

    ④ 并集选择器

    语法:$(“选择器1,选择器2,…,选择器n”) 获取多个选择器中的元素 $("div,#test") // 获取页面上所有 <div> 元素和id为 test 的元素

    2. 层级选择器

    ① 后代选择器

    语法:$(“A B”) 选择A元素内部的所有B元素

    ② 子选择器

    语法:$(“A > B”) 选择A元素内部的所有B子元素

    示例

    <body> <div> <p><span>div内部span</span></p> <span>div内部span + div子span</span> </div> <input type="button" id="btn1" value="内部span"> <input type="button" id="btn2" value="子span"> <script> $("#btn1").click(function () { $("div span").css("color","red"); }) $("#btn2").click(function () { $("div > span").css("color","blue"); }) </script> </body>

    3. 属性选择器

    ① 属性名称选择器

    语法:$(“A[属性名]”) 选择包含指定属性的A元素$("[属性名]") 选择包含指定属性的元素 $("input[type]"); // 选择页面上所有包含 type 属性的 <input> 元素 $("[type]"); // 选择包含 type 属性的所有元素

    ② 属性选择器

    语法:$(“A[属性名 = ‘属性值’]”) 选择包含指定属性且等于属性值的A元素 $("input[type = button]"); // 选择页面上所有包含 type 属性且属性值为 button 的 <input> 元素

    ③ 复合属性选择器

    语法:$(“A[ 属性名1 = ‘属性值1’ ][ 属性值2: = ‘属性名2’ ]”) 选择包含多个属性条件的A元素,多个属性条件之间没有空格 $("input[type = 'button'][value = 'check']"); // 选择满足属性条件的 <input> 元素

    4. 过滤选择器

    ① 首元素选择器

    语法::first 获得选择的元素中的第一个元素

    ② 尾元素选择器

    语法::last 获得选择的元素中的最后一个元素

    ③ 非元素选择器

    语法::not(选择器) 获得不包括指定内容的元素

    ④ 偶数选择器

    语法::even 获得选择元素中索引为偶数的元素,从0开始计数

    ⑤ 奇数选择器

    语法::odd 获得选择元素中索引为奇数的元素,从0开始计数

    ⑥ 等于索引选择器

    语法::eq(index) 获得选择元素中等于指定索引的元素

    ⑦ 大于索引选择器

    语法::gt(index) 获得选择元素中大于指定索引的元素

    ⑧ 小于索引选择器

    语法::lt(index) 获得选择元素中小于指定索引的元素

    ⑨ 标题选择器

    语法::header 获得所有标题元素

    示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>过滤选择器</title> <script src="jquery-3.5.1.js"></script> </head> <body> <h1>h1</h1> <h2>h2</h2> <div class="a">1</div> <div class="b">2</div> <div class="a">3</div> <div class="a">4</div> <div class="b">5</div> <div class="a">6</div> <input id="first" type="button" value="first"> <input id="last" type="button" value="last"> <input id="even" type="button" value="even"> <input id="odd" type="button" value="odd"> <input id="not" type="button" value="not"> <input id="eq" type="button" value="eq"> <input id="gt" type="button" value="gt"> <input id="lt" type="button" value="lt"> <input id="header" type="button" value="header"> <input id="reset" type="button" value="reset"> <script> $("#first").click(function () { $("div:first").css("background-color","red"); }) $("#last").click(function () { $("div:last").css("background-color","blue"); }) $("#even").click(function () { $("div:even").css("background-color","yellow"); }) $("#odd").click(function () { $("div:odd").css("background-color","pink"); }) $("#not").click(function () { $("div:not(.a)").css("background-color","grey"); }) $("#eq").click(function () { $("div:eq(3)").css("background-color","purple"); }) $("#lt").click(function () { $("div:lt(3)").css("background-color","orange"); }) $("#gt").click(function () { $("div:gt(3)").css("background-color","red"); }) $("#header").click(function () { $(":header").css("background-color","green"); }) $("#reset").click(function () { $("div,:header").css("background-color","white"); }) </script> </body> </html>

    5. 表单过滤选择器

    ① 可用元素选择器

    语法::enabled 获得可用的元素

    ② 不可用元素选择器

    语法::disabled 获得不可用的元素

    ③ 选中选择器

    语法::checked 获得单选/复选框选中的元素

    ④ 下拉框选中选择器

    语法::selected 获得下拉框选中的元素

    DOM操作

    1. 内容操作

    ① html():获取/设置元素的标签体内容

    // 获取元素标签体内容 var div_html = $("#div").html(); // 设置元素标签体内容 $("#div").html("<input type='text'>");

    该方法相当于JavaScript中的innerHTML属性

    // 获取元素标签体内容 var div_html = document.getElementById("div").innerHTML; // 设置元素标签体内容 document.getElementById("div").innerHTML = "<input type='text'>";

    ② text():获取/设置元素的标签体纯文本内容

    // 获取元素标签体文本内容 var div_text = $("#div").text(); // 设置元素标签体文本内容 $("#div").text("123");

    该方法相当于JavaScript中的innerText属性

    // 获取元素标签体文本内容 var div_text = document.getElementById("div").innerText; // 设置元素标签体文本内容 document.getElementById("div").innerText = "123";

    ③ val():获取/设置元素的value属性值

    // 获取元素的value属性值 var input_val = $("#input").val(); // 设置元素的value属性值 $("#input").val("abc");

    该方法相当于JavaScript中的value属性

    // 获取元素的value属性值 var input_val = document.getElementById("input").value; // 设置元素的value属性值 document.getElementById("input").value = "abc";

    2. 属性操作

    (1). 通用属性操作

    ① attr():获取/设置元素的属性

    // 获取元素属性值 var input_type = $("#input").attr("type"); // 修改元素属性值 $("#input").attr("type","text");

    ② removeAttr():删除属性

    $("#input").removeAttr("name");

    ③ prop():获取/设置元素的属性

    // 获取元素属性值 var input_type = $("#input").prop("type"); // 修改元素属性值 $("#input").prop("type","text");

    ④ removeProp():删除属性

    attr和prop的区别

    若操作元素的固有属性,则推荐使用prop方法

    若操作元素的自定义属性,则推荐使用attr方法

    <div id="div" ziDing="zidingyi"></div> <script> alert($("#div").attr("ziDing")); //弹出 zidingyi alert($("#div").prop("ziDing")); //弹出 undefined </script>

    对于 checked / selected / disabled 这些方法,若元素定义过这些属性,attr()方法会返回对应属性名的字符串,而prop()方法会返回一个布尔值

    <input name="123" id="input" type="checkbox" checked="true"> <script> document.write($("#input").prop("checked")); // 输出 true document.write($("#input").attr("checked")); // 输出 checked </script>

    若没有定义这些属性,prop()方法会返回这些属性的默认布尔值,attr()方法则返回undefined

    <input name="123" id="input" type="checkbox" checked="true"> <script> document.write($("#input").prop("disabled")); // 输出 false document.write($("#input").attr("disabled")); // 输出 undefined </script>
    (2). 对class属性操作

    ① addClass():添加class属性值

    $("#div").addClass("red");

    ② removeClass():删除class属性值

    $("#div").removeClass("red");

    ③ toggleClass():切换class属性

    若元素有对应属性,则删除对应属性,若元素没有对应属性,则添加对应属性

    <div class="red" id="div">This is a div</div> <script> $("#div").toggleClass("red"); // div的class属性包含red 则删除red $("#div").toggleClass("blue"); // div的class属性不包含blue 则添加blue </script>

    3. CRUD操作

    ① append():父元素将子元素追加到末尾

    父元素.append(子元素);

    var p = document.createElement("p"); $(p).html("This is a p"); $("#div").append(p); // div标签将p标签追加到末尾

    ② appendTo():将子元素追加到父元素末尾

    子元素.appendTo(父元素);

    var p = document.createElement("p"); $(p).html("This is a p"); $(p).appendTo($("#div")); // 将p标签追加到div标签末尾

    ③ prepend():父元素将子元素添加到开头

    父元素.prepend(子元素);

    var p = document.createElement("p"); $(p).html("This is a p"); $("#div").prepend(p); // div标签将p标签添加到开头

    ④ prependTo():将子元素添加到父元素开头

    子元素.prependTo(父元素);

    var p = document.createElement("p"); $(p).html("This is a p"); $(p).prependTo($("#div")); // 将p标签添加到div标签开头

    ⑤ after():添加对应元素到元素之后

    $(obj1).after(obj2); // 将obj2添加到obj1之后

    ⑥ before():添加对应元素到元素之前

    $(obj1).before(obj2); // 将obj2添加到obj1之前

    ⑦ insertAfter():添加元素到对应元素之前

    $(obj1).insertAfter(obj2); // 将obj1添加到obj2之后

    ⑧ insertBefore():添加元素到对应元素之后

    $(obj1).insertBefore(obj2); // 将obj1添加到obj2之前

    在方法 ⑤ ⑥ ⑦ ⑧ 中,两个元素应为兄弟关系

    ⑨ remove():移除元素

    obj.remove(); // 删除obj元素

    ⑩ empty():清空元素的所有后代元素

    obj.empty(); // 删除obj的所有后代元素,保留obj元素
    Processed: 0.009, SQL: 9