魔术桌
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • Language - JavaScript - API - JQuery

文章摘要: JQuery是封装好的JavaScript库。

  • JQuery解决了浏览器兼容问题。
  • JQuery解决了编写代码繁琐的问题。
  • Ajax是JavaScript的一个API,实现在不刷新当前页面的情况下,再次访问服务器获取资源,并更新当前页面上的元素信息。
  • 在HTML文件中引入JQuery.JS文件

jQuery的入口函数

  • 等待DOM结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完成。
// 方案一
$(document).ready(function() {
    // 代码块
});

// 方案二
$(function() {
    // 代码块
});

顶级对象

  • jQuery与$的作用一样。
  • $是jQuery的别名。
  • $是jQuery的顶级对象,相当于原生JavaScript中的window,把元素利用$包装成jQuery对象,就可以调用jQuery的方法。

获取jQuery对象

$('div');
$('.class');
$('#id');

jQuery对象与DOM对象的转换

  • jQuery对象与DOM对象之间可以相互转换。
  • jQuery并没有将全部属性和方法进行封装。

DOM对象转换为jQuery对象

var div = document.querySelector('div');
$(div);

jQuery对象转换为DOM对象

// index是索引号

$('div')[index];

$('div').get(index);

元素选择器

基础选择器

名称例子描述
ID选择器$('#id')获取指定ID的元素
全选选择器 $('*')匹配所有元素
类选择器$('.class')获取同一类class的元素
标签选择器$('div')获取同一类标签的所有元素
并集选择器$('div,p,li')选取多个元素
交集选择器$('li.current')交集元素

层级选择器

名称例子描述
子代选择器$('ul>li')使用>,来获取儿子层级的元素,且不会获取孙子层级的元素
后代选择器$('ul li')使用空格,代表后代选择器,获取ul下的所有li元素包括孙子层级的元素

筛选选择器

语法例子描述
:first$('li:first')获取第一个li元素
:last$('li:last')获取最后一个li元素
:eq(index)$('li:eq(2)')获取到的li元素中,选择索引号为2的元素,索引号index从0开始
:odd$('li:odd')获取到的li元素中,选择索引号为奇数的元素
:even$('li:even')获取到的li元素中,选择索引号为偶数的元素

元素筛选方法

语法例子描述
parent()$('li').parent();查找父级
children(selector)$('ul').children('li');相当于$('ul>li'),儿子层级
find(selector)$('ul').find('li');相当于$('ul li'),后代选择器
siblings(selector)$('.first').siblings('li');查找兄弟节点,不包括自己本身
nextAll([expr])$('.first').nextAll();查找当前元素之后的所有同辈元素
prevAll([expr])$('.last').prevAll();查找当前元素之前的所有同辈元素
hasClass(class)$('div').hasClass('protected');检查当前的元素是否含有某个特定的类,若有则返回true
eq(index)$('li').eq(2);相当于$('li:eq(2)'),index从0开始

样式操作

$("<元素>").css("<属性>", "<值>");

效果

属性操作

文本属性值

元素操作

尺寸、位置操作

清空id为data的元素中的内容

$('#data').empty();

事件监听

  • 事件监听可以理解为比较特殊的修改元素属性值的操作。

==待完善==

方法说明
$<元素对象>.on()鼠标点击
$<元素对象>.onblur元素失去焦点
$<元素对象>.onfocus元素获得焦点
$<元素对象>.onload某个页面或图像被完成加载
$<元素对象>.onsubmit当表单提交时出发该事件
$<元素对象>.onkeydown某个键盘的键被按下
$<元素对象>.onmouseover鼠标被移到某个元素上
$<元素对象>.onmouseout鼠标从某个元素上移开
==待完善==

案例


循环

格式

// 传入需要遍历循环的数组
// 自动每循环一次,就执行一次`function()`函数
// function(i, item),i代表当前循环的索引,item代表当前循环的数值
$.each(<循环数组>, function(i, item) {
    console.log(item);
});

发起请求与接收响应

$.get()

  • 专门用于发起get请求,从而将服务器上的资源请求到客户端来进行使用。

格式

// url:请求的资源地址
// data:(可选)请求资源期间要携带的参数
// callback:(可选)请求成功时的回调函数
$.get(url, [data], [callback]);

案例 - 不带data参数的数据

$(function() {
    // 监听id是button的元素,当点击时执行该函数
    $('#button').on('click', function() {
        $.get('http://127.0.0.1:8080/login', function(res) {
            console.log(res);  // res是服务器返回的数据
        })
    })
});

案例 - 携带data参数的数据

$(function() {
    // 监听id是button的元素,当点击时执行该函数
    $('#button').on('click', function() {
        $.get('http://127.0.0.1:8080/login', {id: 1}, function(res) {
            console.log(res);  // res是服务器返回的数据
        })
    })
});

$.post()

  • 专门用于发起post请求,向服务器提交数据。

格式

// url:请求的资源地址
// data:(可选)请求资源期间要携带的参数
// callback:(可选)请求成功时的回调函数
$.post(url, [data], [callback]);

案例 - 携带data参数的数据

$(function() {
    // 监听id是button的元素,当点击时执行该函数
    $('#button').on('click', function() {
        $.post('http://127.0.0.1:8080/login', {name: "小明", age: 18}, function(res) {
            console.log(res);  // res是服务器返回的数据
        })
    })
});

$.ajax()

  • 能比较综合的函数,允许我们对ajax请求进行更详细的配置。

格式

$.ajax({
    type: '',    // 请求方式,如GET、POST
    url: '',     // 请求的URL地址
    data: {},    // 请求携带的数据
    success: function(res) {}   // 请求成功之后的回调函数

});

案例

$.ajax({
    type: 'GET',                        // 请求方式,如GET、POST
    url: 'http://127.0.0.1:8080/login', // 请求的URL地址
    data: {                             // 请求携带的数据
        name: "小明",
        age: 18
    },
    success: function(res) {            // 请求成功之后的回调函数
        // res是服务器返回的数据
        console.log(res);
    }

});

案例

// 方法
$(function() {
    // 监听id是button的元素,当点击时执行该函数
    $('#button').on('click', function() {
        $.ajax({
            type: 'GET',                        // 请求方式,如GET、POST
            url: 'http://127.0.0.1:8080/login', // 请求的URL地址
            data: {                             // 请求携带的数据
                name: "小明",
                age: 18
            },
            success: function(res) {            // 请求成功之后的回调函数
                // res是服务器返回的数据
                console.log(res);
            }

        });

    })
});

案例

$(function () {
    // 获取图书列表数据
    function getBookList() {
        $.get('http://127.0.0.1:8080/book', function(res) {
            // 判断是否获取成功,这里的响应码是后台自行设定的,并非服务器标准响应码
            if (res.status !== 200) return alert("获取数据失败");

            var rows = []
            $.each(res.data, function(i, item) {
                rows.push("<tr><td>"+item.id+"</td><td>"+item.bookname+"</td><td>"+item.author+"</td><td>"+item.publisher+"</td><td><a href='javascript:;' class='del' data-id='"+item.id+"'>删除</a></td></tr>");
            });
            // 将一个id为tb的标签,进行清空之前渲染过的数据内容,并添加新的内容进去
            $('#tb').empty().append(rows.join(''));
        })
    }

    getBookList()

    // 通过代理的方式为动态添加的元素绑定点击事件
    // - 通过先绑定父级的标签,再去绑定动态添加的元素
    $('tbody').on('click', '.del', function() {
        var id = $(this).attr('data-id');
        console.log("点击id为"+id+"的删除按钮");

        $.get('http://127.0.0.1:8080/delbook', {"id": id}, function(res) {
            if(res.status !== 200) return alert("删除失败");
            alert("删除成功");
            getBookList()
        })
    })

});
更新时间: 2025/11/16 17:17