jQuery学习笔记-程序员宅基地

技术标签: 学习  笔记  

目录

简介

下载

优点

轻量级

易用性

跨浏览器兼容性

DOM操作简便

AJAX支持

使用

核心

核心函数(jQuery构造函数)

jQuery 基础概念

jQuery 对象

DOM 对象与 jQuery 对象互转

jQuery 选择器

DOM对象与jQuery包装集对象

DOM对象转换为jQuery对象

jQuery对象转为DOM对象

jQuery选择器

ID选择器

类选择器

元素选择器

属性选择器

层级选择器

伪类选择器

基本选择器

层次选择器

表单选择器

DOM操作

操作元素的属性

获取属性

设置属性

删除属性

操作元素的样式

操作元素的内容

创建元素

添加元素

后追加(append)

前追加(prepend)

添加同级元素

后追加同级元素(after)

前追加同级元素(before)

删除元素

删除(remove)

遍历元素

遍历(each)

jQuery事件

ready加载事件

ready加载事件的工作原理

ready加载事件的优势

bind绑定事件

Ajax

简介

基本工作原理


 

简介

jQuery 是一个流行的轻量级 JavaScript 库,由 John Resig 创建并开源,旨在简化 Web 开发中常见的 HTML 文档遍历、事件处理、动画以及 Ajax 交互等任务。它封装了大量常用的 JavaScript 功能,提供了一致的跨浏览器兼容性,并且通过其简洁而强大的选择器引擎以及链式语法,极大地提高了开发者的工作效率。(兼容多浏览器的JavaScript脚本库,核心概念是写得少,做的多,使用jQuery可以极大的提高编写JavaScript代码效率)

下载

地址:jQuery

eb4c6eb5d4bc4230809dd49a5060c8ff.png

点击进入之后,Ctrl+S保存到指定文件夹

8e07d9da20d24f5092b9ce2824630581.png

优点

轻量级

jQuery库经过压缩后尺寸很小,便于网络加载,减少对网页性能的影响,提高用户体验

易用性

提供简洁、直观的API,简化了JavaScript代码,减少了重复编写DOM操作和事件处理的工作量。
模仿CSS选择器的方式选取DOM元素,使得开发者能快速定位并操作页面元素。

跨浏览器兼容性

jQuery内部实现了对不同浏览器差异的兼容,确保代码在多种浏览器(如IE6.0+、Firefox、Chrome、Safari、Opera等)下都能稳定运行。

DOM操作简便

封装了大量的DOM操作方法,包括查找、遍历、修改、创建、删除等,极大提高了DOM操作效率。

AJAX支持

对Ajax进行了高度抽象化封装,简化了异步数据请求和处理过程等等

使用

在页面引入刚才下载的jQuery即可

<script src="../js/jquery-3.7.1.js" type="text/javascript"></script>

核心

核心函数(jQuery构造函数)

jQuery() 或 $() 函数是jQuery的核心所在,它是整个库的基础。通过这个函数,jQuery能够执行各种DOM查询、操作和事件处理等工作。jQuery(selector, [context]) 可以接收一个CSS选择器字符串,用来在DOM中查找匹配的元素集合,并返回一个jQuery对象,该对象封装了这些元素并对它们进行进一步的操作。($符号在jQuery中代表对jQuery对象的引用,通过该对象可以获取jQuery对象,调用jQuery提供的方法等)

jQuery 基础概念

jQuery 对象

当使用 $() 函数包裹一个 CSS 选择器或者 DOM 元素时,会返回一个 jQuery 对象。jQuery 对象是一个包含零个或多个 DOM 元素的集合,它可以调用一系列 jQuery 方法。
// 选择所有的 div 元素并转换为 jQuery 对象
var divs = $("div");

DOM 对象与 jQuery 对象互转

  • 从 jQuery 对象获取 DOM 对象:通过索引访问 [index] 或 .get(index)
var $firstDiv = $("div:first");
var domFirstDiv = $firstDiv[0]; // 获得第一个 DOM 元素
  • 将 DOM 对象转换为 jQuery 对象:直接使用 $() 包裹
var domDiv = document.getElementById("myDiv");
var $div = $(domDiv); // 转换为 jQuery 对象

jQuery 选择器

(一)基础选择器:基于 CSS 选择器来选取页面上的元素。

// 选择 id 为 myElement 的元素
var element = $("#myElement");
// 选择所有 class 为 myClass 的元素
var elements = $(".myClass");
// 选择所有 type 为 text 的 input 元素
var inputs = $("input[type='text']");

(二)过滤选择器:用于进一步筛选已经匹配到的元素集合。

// 获取第一个 li 元素
var firstLi = $("li:first");
// 获取最后一个 li 元素
var lastLi = $("li:last");
// 获取索引为 2 的 li 元素
var thirdLi = $("li").eq(1);
// 获取索引为奇数的 li 元素
var oddLis = $("li:odd");

f904922343174054b29580bdb8f0452f.png

DOM对象与jQuery包装集对象

原始的DOM对象只有DOM接口提供的方法和属性,通过JS代码获取的对象都是DOM对象,而通过jQuery获取的对象是jQuery包装集对象,也就是jQuery对象,只有jQuery对象才可以使用jQuery提供的方法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="mydiv">DOM对象</div>
    <!-- 
        DOM对象:通过JS代码获取的对象(document)
        jQUery对象:通过jQuery获取的对象,返回jQuery包装集
     -->
     
    <!-- 引入jQuery -->
    <script src="../js/jquery-3.7.1.js" type="text/javascript"></script>
     <script>
        // DOM对象
        var mydivDom = document.getElementById('mydiv')
        console.log(mydivDom)

        // JS获取不存在的元素
        var myspan = document.getElementsByTagName('span')
        console.log(myspan)             // 空数组 

        var mydivspan1 = document.getElementById('span')
        console.log(mydivspan1)         // null

        console.log("-------------")


        // jQuery对象
        var myjquery = $('#mydiv')
        console.log(myjquery)

        // jQuery获取不存在的元素
       var myjquery1 = $('#mybutton')
       console.log(myjquery1)            // 空集
     </script>
</body>
</html>

DOM对象转换为jQuery对象

只需要用$()包装即可

<body>
    <div id="mydiv">DOM对象</div>
    <!-- 引入jQuery -->
    <script src="../js/jquery-3.7.1.js" type="text/javascript"></script>
     <script>
        // DOM对象
        var mydivDom = document.getElementById('mydiv')

        // jQuery对象
        var DOM_jQuery = $('mydivDOM')

        console.log(DOM_jQuery)
     </script>
</body>

jQuery对象转为DOM对象

<body>
    <div id="mydiv">DOM对象</div>
    <!-- 引入jQuery -->
    <script src="../js/jquery-3.7.1.js" type="text/javascript"></script>
     <script>
        // jQuery对象
        var my_Query = $('#mydiv')

        // 获取jQuery包装集对象中指定下标的元素,将jQUery转为DOM

        // DOM对象
        var jQuery_DOM = my_Query[0] 

        console.log(jQuery_DOM)
     </script>
</body>

jQuery选择器

jQuery选择器是jQuery库中的一种强大工具,它借鉴并扩展了CSS选择器的概念,允许开发者根据HTML元素的id、类名、标签名、属性以及其他特性来精确地定位和选择页面上的元素。jQuery选择器不仅支持大部分CSS1至CSS3的选择器语法,还引入了一些自定义的选择器功能,以便更灵活地筛选和操作DOM元素。jQuery选择器通常以美元符号 ($) 开头,紧跟一个括号 (),里面放入CSS选择器表达式。

ID选择器

通过元素的ID来选择单一元素,例如 $("#myId"),会选择id为"myId"的元素。

类选择器

通过元素的类名来选择一组元素,例如 $(".myClass"),会选择所有class包含"myClass"的元素。

元素选择器

通过HTML标签名来选择一类元素,例如 $("p"),会选择所有的段落元素。

属性选择器

根据元素的属性及其值来选择元素,例如 $("input[type='text']"),会选择所有type属性为"text"的输入框元素。

层级选择器

用于选择处于特定上下文关系的元素,例如 $("#parent > .child"),会选择id为"parent"元素的所有直接子元素中class为"child"的元素。

伪类选择器

jQuery也提供了一些自定义的伪类选择器,如:first、:last、:even、:odd等,用于选择满足特定条件的元素,例如 $("tr:even"),会选择表格中的偶数行。

通过这些选择器,jQuery可以快速有效地找到页面上的元素,并对它们执行一系列的操作,如修改样式、添加或移除内容、绑定事件处理程序等。

基本选择器

<body>
    <div id="d1">id选择器<span>span标签</span></div>
    <div class="c1" id="d2">元素选择器</div>
    <div class="c2">类选择器</div>

     <!-- 引入jQuery -->
     <script src="../js/jquery-3.7.1.js" type="text/javascript"></script>
    <script>
        // id选择器
        var myd1 = $("#d1")
        
        //类选择器
        var myc1 = $(".c1")

        // 元素选择器
        var myspan = $("span")

        // 通用选择器
        var myall = $("*")

        //组合选择器
        var mygroup = $("#d2,.c2")
    </script>
</body>

层次选择器

<head>
    <meta charset="UTF-8">
    <title>jQuery 选择器示例</title>
    <!-- 引入jQuery -->
    <script src="../js/jquery-3.7.1.js" type="text/javascript"></script>
    <style>
        .selected {
            background-color: yellow;
        }
    </style>
</head>

<body>
    <!-- 
        后代选择器:
            父元素 指定后代元素(空格隔开)
            $("父元素 指定后代元素")
            选择父元素下的所有指定后代元素(包括子、孙元素等等)

        子代选择器:
            父元素>指定后代元素(>隔开)
            $("父元素>指定后代元素")
            选择父元素下的所有指定后代元素(只选择子元素)

        相邻选择器:
            元素+指定元素(+隔开)
            $("元素+指定元素")
            选择元素的下一个

        同辈选择器:
            元素~指定元素(~隔开)
            $("元素~指定元素")
            选择元素下面所有指定元素
     -->
    <div id="parent">
        <p class="child">我是父元素下的子元素</p>
        <div>
            <p class="grandchild">我是父元素下的孙元素</p>
        </div>
    </div>

    <ul id="list">
        <li>列表项1</li>
        <li>列表项2</li>
        <li>列表项3</li>
        <li>列表项4</li>
    </ul>

    <p id="firstParagraph">第一段文字</p>
    <p>第二段文字</p>
    <p>第三段文字</p>

    <script>
        // 后代选择器示例
        $("#parent .child")

        // 子代选择器示例
        $("#parent > p")

        // 相邻选择器示例
        $("#firstParagraph + p")

        // 同辈选择器示例
        $("#firstParagraph ~ p")
    </script>

</body>

表单选择器

<head>
    <meta charset="UTF-8">
    <title>jQuery 表单选择器示例</title>
    <script src="../js/jquery-3.7.1.js" type="text/javascript"></script>
    <style>
        .selected {
            background-color: yellow;
        }
    </style>
</head>

<body>
    <form id="myForm">
        <fieldset>
            <legend>用户信息</legend>
            <label for="username">用户名:</label>
            <input type="text" id="username" name="username">
            <br>
            
            <label for="email">电子邮件:</label>
            <input type="email" id="email" name="email">
            <br>
            
            <input type="checkbox" id="terms" name="terms">
            <label for="terms">我同意服务条款</label>
            <br>
            
            <select id="country" name="country">
                <option value="">请选择国家</option>
                <option value="us">美国</option>
                <option value="uk">英国</option>
            </select>
        </fieldset>
        
        <button type="submit">提交</button>
    </form>

    <script>
        // 选择所有文本输入框
        $("input:text")

        // 选择所有email类型的输入框
        $("input[type='email']")

        // 选择所有被选中的复选框
        $("input[type='checkbox']:checked")

        // 选择所有select元素的选中项
        $("select option:selected")

        // 选择指定表单内的所有input元素
        $("#myForm :input")

        // 在表单提交时,验证是否勾选了服务条款
        $("#myForm").submit(function(event) {
            if (!$("#terms").is(":checked")) {
                alert("请先同意服务条款!");
                event.preventDefault(); // 阻止表单提交
            }
        });
    </script>

</body>

DOM操作

操作元素的属性

获取属性

<body>
    <!-- 
        获取属性:attr("属性名")    prop("属性名")
        固有属性:attr()、propp()均可获取
        自定义属性:attr()可获取、prop()不可获取
        返回值是boolean的属性:
            设置属性:attr()返回值、prop()返回true
            未设置属性:attr()返回undefined、prop()返回false
     -->
    <input type="checkbox" name="get" checked="checked" id="a" zdy="zdysx">
    <input type="checkbox" name="get" id="b">

    <script src="../js/jquery-3.7.1.js"></script>
    <script>
        // 固有属性:本身就有的属性 name style等等
        var n1 = $("#a").attr("name")
        console.log(n1)   // 输出get
        var n2 = $("#a").prop("name")
        console.log(n2)   // 输出get


        // 返回值是boolean的属性:checked disabled等等
        // 设置属性checked
        var c1 = $("#a").attr("checked")
        console.log(c1)   // 输出checked
        var c2 = $("#a").prop("checked")
        console.log(c2)   // 输出true

        //元素未设置属性
        var w1 = $("#b").attr("checked")
        console.log(w1)   // 输出undefined
        var w2 = $("#b").prop("checked")
        console.log(w2)   // 输出false

        // 自定义属性
        var z1 = $("#a").attr("zdy")
        console.log(z1)   // 输出zdysx
        var z2 = $("#a").prop("zdy")
        console.log(z2)   // 输出undefined


    </script>
</body>

设置属性

<body>
    <!-- 
        设置属性:attr("属性名","属性值")    prop("属性名","属性值")
        prop()不可操作
     -->
    <input type="checkbox" name="get" checked="checked" id="a" zdy="zdysx">
    <input type="checkbox" name="get" id="b">

    <script src="../js/jquery-3.7.1.js"></script>
    <script>
        // 固有属性
        $("#a").attr("value","1")
        $("#b").prop("value","2")


        // 返回值是boolean的属性
        $("#b").attr("checked","checked")
        $("#b").prop("checked",false)

        // 自定义属性
        $("#a").attr("age","18")
        $("#a").prop("admin","admin")
    </script>
</body>

删除属性

<body>
    <!-- 
        删除属性:removeAttr("属性名")
     -->
    <input type="checkbox" name="get" checked="checked" id="a" zdy="zdysx">
    <input type="checkbox" name="get" id="b">

    <script src="../js/jquery-3.7.1.js"></script>
    <script>
        $("#a").removeAttr("checked")
    </script>
</body>

如果属性是boolean类型,用prop()方法,反之attr()方法。

操作元素的样式

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery 操作元素样式的示例</title>
    <style>
        .red-text {
            color: red;
        }

        .bg-blue {
            background-color: blue;
        }

        .italic {
            font-style: italic;
        }
    </style>
    <script src="../js/jquery-3.7.1.js"></script>
</head>

<body>
    <!-- 
        操作元素的样式:
            attr("class")             获取元素样式名
            attr("class","样式名")    设置元素样式
            addClass("样式名")        添加样式
            css()                     添加具体样式
            removeClass("样式名")     删除样式 
    -->

    <p id="myElement" class="initial-class">Hello, World!</p>

    <script>
        // 获取元素样式名
        var className = $('#myElement').attr('class');
        console.log('初始样式类名为:', className);

        // 设置元素样式
        $('#myElement').attr('class', 'red-text bg-blue');
        console.log('设置后的样式类名为:', $('#myElement').attr('class'));

        // 添加样式
        $('#myElement').addClass('italic');
        console.log('添加样式后的类名为:', $('#myElement').attr('class'));

        // 添加具体样式
        $('#myElement').css({
            'fontSize': '20px',
            'fontWeight': 'bold'
        });

        // 删除样式
        $('#myElement').removeClass('red-text');
        console.log('删除样式后的类名为:', $('#myElement').attr('class'));
    </script>

</body>

操作元素的内容

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery 操作元素内容的示例</title>
    <script src="../js/jquery-3.7.1.js"></script>
</head>
<body>

<div id="contentArea">原始内容</div>

<script>
    // 获取元素内容
    var originalContent = $('#contentArea').html();
    console.log('当前元素的内容为:', originalContent);

    // 设置元素内容
    $('#contentArea').html('新的内容设置');
    console.log('设置后的内容为:', $('#contentArea').html());

    // 追加内容
    $('#contentArea').append('这是追加的内容');
    console.log('追加内容后的完整内容为:', $('#contentArea').html());

    // 插入内容(在元素开始处)
    $('#contentArea').prepend('这是插入在开始处的内容');
    console.log('插入内容后的完整内容为:', $('#contentArea').html());

    // 替换内容
    $('#contentArea').html('这是替换掉原有内容的新内容');
    console.log('替换内容后的完整内容为:', $('#contentArea').html());
</script>

</body>

创建元素

 jQuery提供了简便的方式来创建新的DOM元素。例如,$('<div>', { 'class': 'myClass' })会创建一个新的<div>元素,并设置其class属性为'myClass'。你还可以通过.text('文本内容')或.html('HTML内容')方法填充元素的内容。

添加元素

后追加(append)

使用.append()方法可以将元素添加到指定元素的内部结尾处。例如,$('#parent').append(newElement)会将新创建的元素newElement添加到id为'parent'的元素内部的最后。

前追加(prepend)

与append类似,.prepend()方法将元素添加到指定元素内部的开头。例如,$('#parent').prepend(newElement)会将newElement添加到id为'parent'的元素内部的最前面。

添加同级元素

后追加同级元素(after)

使用.after()方法可以在某个元素之后添加新的同级元素。例如,$('.currentElement').after(newSibling)会在class为'currentElement'的元素之后插入新的同级元素newSibling。

前追加同级元素(before)

与after相似,.before()方法将在指定元素之前添加新的同级元素。例如,$('.currentElement').before(newSibling)会在class为'currentElement'的元素之前插入新的同级元素newSibling。

删除元素

删除(remove)

使用.remove()方法可以直接从DOM中移除元素。例如,$('.item').remove()会移除所有class为'item'的元素。

遍历元素

遍历(each)

jQuery的.each()方法允许你迭代遍历jQuery对象所匹配的所有元素。例如,$('.items').each(function(index, element) {...})将会遍历所有class为'items'的元素,其中index是元素的索引位置,element是当前遍历到的DOM元素。

<head>  
<meta charset="UTF-8">  
<title>jQuery 示例</title>  
<script src="../js/jquery-3.7.1.js"></script>  
<style>  
    .container {  
        border: 1px solid black;  
        margin: 10px;  
        padding: 10px;  
    }  
    .item {  
        background-color: #f0f0f0;  
        margin: 5px;  
        padding: 5px;  
    }  
</style>  
</head>  
<body>  
  
<div id="parent" class="container">  
    <div class="item">Item 1</div>  
    <div class="item">Item 2</div>  
</div>  
  
<div class="currentElement">Current Element</div>  
  
<script>  
    // 添加元素  
    var newElement = $('<div class="item">New Item</div>');  
    $('#parent').append(newElement); // 后追加  
    $('#parent').prepend(newElement); // 前追加(注意:这会导致元素重复添加)  
  
    var newSibling = $('<div class="sibling">New Sibling</div>');  
    $('.currentElement').after(newSibling); // 后追加同级元素  
    $('.currentElement').before(newSibling); // 前追加同级元素(注意:这会导致元素重复添加)  
  
    // 删除元素  
    $('.item').remove(); // 删除所有class为'item'的元素  
  
    // 遍历元素  
    $('.container .item').each(function(index, element) {  
        console.log('Index: ' + index + ', Element Text: ' + $(element).text());  
    });  
</script>  
  
</body>  

jQuery事件

ready加载事件

jQuery的ready加载事件是jQuery库提供的一个非常有用的功能,它允许开发者在DOM(文档对象模型)加载完成后执行特定的JavaScript代码。这一特性对于确保在尝试操作DOM元素之前这些元素已经存在和可用至关重要。

ready加载事件的工作原理

当浏览器解析HTML文档时,它会逐步构建DOM树。在DOM树构建的过程中,浏览器会触发各种事件,其中之一就是DOMContentLoaded事件。jQuery的ready方法实际上是对这个原生事件的封装,提供了一个更简洁、更易于使用的接口。当DOM加载完成时(即HTML文档被完全解析,DOM树构建完毕),ready事件会被触发。此时,所有的HTML元素都已经存在于DOM中,但可能还没有完成所有的样式计算、图片加载等。因此,ready事件是执行与DOM元素相关的初始化代码的理想时机。

<body>
    <p id="d1">ready</p>
    <!-- 
        ready加载事件:
            预加载事件
            当页面的DOM结构加载完毕后执行
            类似于JS中的load事件
            ready事件可以写多个
            语法:$(document).ready(function(){})
            简写:$(functon(){})
     -->
     <script src="../js/jquery-3.7.1.js"></script>
     <script>
        $(document).ready(function(){
            console.log($("#d1"))
        })
     </script>
</body>
</html>

ready加载事件的优势

确保DOM元素可用:在ready事件触发之前,浏览器可能还在解析HTML文档或构建DOM树。使用ready方法可以确保你的代码在尝试访问或操作DOM元素之前,这些元素已经存在。

提升性能:与window.onload事件相比,ready事件具有更高的优先级。window.onload事件会在整个页面加载完成后触发,包括所有的图片、CSS文件、脚本文件等。因此,如果你的代码不需要等待所有资源都加载完,使用ready方法会更快。

简洁易用:jQuery的ready方法提供了简洁的语法和易于理解的行为,使得开发者能够更轻松地编写出健壮且高效的代码。

bind绑定事件

在 jQuery 中,bind() 方法用于为被选元素添加一个或多个事件处理程序,并指定当这些事件发生时运行的函数。尽管 .on() 方法是较新的且更推荐使用的绑定事件的方法,但 .bind() 方法仍然可用,并且为开发者提供了类似的功能。

<script>
        document.getElementById('#myButton').onclick = function(){
            console.log('原生JS绑定')
        }
</script>
 <!-- 
        bind绑定事件:
            为被选的元素添加一个或者多个处理程序,并且规定事件发生时需要运行的函数
            语法:$(selector).bind(eventType[,eventData],handler(eventObject))]
            eventType:事件类型,需要绑定的事件
            eventData:传递的参数
            eventObject:事件触发执行的函数
 -->

// 为元素绑定单个事件  

$("#myButton").bind("click", function() {  
    alert("按钮被点击了!");  
});  
  
// 为元素绑定多个事件  
$("#myElement").bind({  
    click: function() {  
        console.log("元素被点击了!");  
    },  
    mouseover: function() {  
        console.log("鼠标悬停在元素上!");  
    },  
    mouseout: function() {  
        console.log("鼠标离开了元素!");  
    }  
});

<!-- 
        绑定单个事件:
            bind绑定:$('元素').bind("事件类型",function(){})
            直接绑定:$('元素').事件名(function(){})
-->

$('#myButton').click(function(){
        console.log('直接绑定')
    })

Ajax

简介

AJAX,即“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式、快速动态网页应用的网页开发技术。AJAX 不是一种新的编程语言,而是一种使用现有标准的新方法。AJAX 使用多种技术,包括 JavaScript、HTML、CSS 以及 DOM(文档对象模型),在浏览器中创建异步(在后台)Web 应用,从而无需重新加载整个网页的情况下,就能够更新部分网页内容。AJAX 的核心特性是“异步”通信,这意味着浏览器可以在不中断用户与当前页面交互的情况下,与服务器交换数据并更新部分页面内容。这种能力使得网页应用能够更快速地响应用户操作,提供更流畅的用户体验。

基本工作原理

  1. 创建 XMLHttpRequest 对象:这是 AJAX 的核心,它负责在浏览器和服务器之间建立连接。

  2. 设置请求方法和 URL:指定要使用的 HTTP 方法(如 GET 或 POST),以及要请求的服务器 URL。

  3. 发送请求:调用 XMLHttpRequest 对象的 send() 方法来发送请求。

  4. 处理响应:在 XMLHttpRequest 对象上设置事件监听器来处理服务器的响应。通常,我们会监听 onreadystatechange 事件,并在状态为 4(表示请求已完成)且状态码为 200(表示请求成功)时处理响应数据。

  5. 更新页面内容:使用 JavaScript 解析响应数据(通常是 JSON 或 XML 格式),并更新页面上的相关部分。

下面是一个简单的 AJAX 请求示例,使用原生 JavaScript 和 XMLHttpRequest 对象:

var xhr = new XMLHttpRequest();  
xhr.open("GET", "https://www.aaa.com/data", true); // 第三个参数为 true 表示异步请求  
  
xhr.onreadystatechange = function() {  
    if (xhr.readyState === 4 && xhr.status === 200) {  
        var response = xhr.responseText; // 获取服务器响应的文本  
        // 在这里处理响应数据,比如解析 JSON 或更新页面内容  
        console.log(response);  
    }  
};  
  
xhr.send(); // 发送请求

使用 jQuery 的 $.ajax() 方法:

 <script src="../js/jquery-3.7.1.js"></script>
    <script>
        $.ajax({
            type:'get',                 // 请求方式
            url:'../js/db.txt',         // 请求地址
            data:{                      // 请求数据:JSON对象
                name:"Ajax"             // 无参数,不设置
            },
            dataType:"json",            // 返回的数据类型,如果JSON,接收返回时,自动封装为JSON对象
            // 请求成功调用函数
            success:function(data){     // 形参 返回的数据(字符串)
                console.log(data)
                // 将字符串转JSON对象
                // var obj = JSON.parse(data)
            }
        })
    </script>

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_64436232/article/details/136771584

智能推荐

Asp.net Core IIS上安装部署及502.5错误解决-程序员宅基地

文章浏览阅读206次。总结:安装Microsoft Visual C++ 2015 Redistributable(https://www.microsoft.com/en-us/download/details.aspx?id=53840)。安装.Net Core SDK(https://www.microsoft.com/net/download/windows)。安..._dotnet6重新部署后报502.5错误

自动生成mybatis中resultMap结果集_mybatis自动生成resultmap-程序员宅基地

文章浏览阅读4.9k次。 上一篇文章提到,自己在新建表时如果表列特别多比如100多个字段时,mybatis中写公共查询字段baseColumn 或者resultMap时特别麻烦,用的是创建表时的sql脚本摘出来某些字段进行操作,但是并不是每次都会有现成的脚本供我们使用,因此我在原有的基础上进行了改良,将entity实体类,通过反射的技术将属性和列名获取到,拼接成resultMap的项。 注意:这种..._mybatis自动生成resultmap

ModelSim中检查未定义变量-程序员宅基地

文章浏览阅读618次。我们都知道,在ModelSim中未定义的变量会被编译器默认设置为一位的"wire"型变量,不会报错甚至不会产生警告,这给我们带来很大的困扰,常常在仿真时得到一堆未知的结果却怎么也找不出哪里有问题。在Verilog-2001标准中规定,你可以通过定义宏来覆盖默认类型的设置,通过在文件头部添加如下宏定义:`default_nettype none这样,任何没有经过明确定义的变量都会..._modles中未定义数据

ASAN 问题总结-程序员宅基地

文章浏览阅读940次,点赞3次,收藏11次。MemShadowshadow memory也是内存中的一块区域,但与main memory又不同,shadow memory中有元数据的思想,其中的数据存放的是 main memory 的状态信息。因此,可以将 shadow memory 看做是 main memory 的元数据,而 main memory 中存储的才是程序真正的数据。_asan

算法导论 CLRS 19.2-8 解答-程序员宅基地

文章浏览阅读180次。假设二项堆H的第一个空缺的二项树为Bk, 则插入一个关键字x之后,必然是有B0, B1, .., Bk-1加上x组成Bk过程如下1. 遍历H的根表,同时比较x和各个二项树的根关键字,记录最小的关键字,直到空缺的二项树Bk2.如果最小关键字为某个二项树Bj的根,则将Bj的根替换为x,然后将x下沉;3. 以最小的关键字为根,B0, B1,...,Bk-1为孩子组成..._clrs 19.2-1

数学通道的应用(十五)-电阻的测量_示波器测高电阻通道乘几-程序员宅基地

文章浏览阅读1.2k次。在我们推出4425A示波器PicoBNC+电阻测试线的介绍视频之后,有人提出了可不可以用4425示波器测量电阻这个问题。这绝对是有可能的。我们必须了解正在测量的电路,捕获电压和电流信号(在有负载的情况下),并使用欧姆定律来计算电阻。图1是一个典型示例,我们在Maths is Cool第一篇文章中介绍过了起动机的电压和电流。 图1 电..._示波器测高电阻通道乘几

随便推点

[转] 高频 mos 选择需要考虑相关资料-程序员宅基地

文章浏览阅读348次。[转] 高频 mos 选择需要考虑相关资料 节选自 http://www.dianyuan.com/bbs/987183.html 【草根大侠】贴 关于MOS管导通内阻和米勒电容(Qgd)差异对效率的影响http://www.epc.com.cn/subject/200910/13172.html 理解功率MOSFET的开关损耗(图)最近做..._mos qg 开关频率

JDBC的批量处理语句_原生态jdbc 批量修改语句-程序员宅基地

文章浏览阅读668次。JDBC的批量处理语句包括下面两个方法:addBatch(String):添加需要批量处理的SQL语句或是参数;executeBatch();执行批量处理语句;通常我们会遇到两种批量执行SQL语句的情况:1 多条SQL语句的批量处理;2 一个SQL语句的批量传参;针对第一种情况我们以前的做法可能是创建多个Statement,然后挨个execute,或者干脆写个PL/SQL;写过程是个明_原生态jdbc 批量修改语句

7个顶级资源搜索网站,不知道太可惜了!_最强搜索引擎入口-程序员宅基地

文章浏览阅读10w+次,点赞25次,收藏192次。 说起搜索资源,大家肯定先想到百度,的确“度娘”很万能,能帮我们解决很多问题,但毕竟百度资源有限,用的人多了就造成重复的问题,接下来,小编给大家分享7个顶级资源搜索网站,能满足你很所多需求哦。一、 疯狂影视搜索http://www.ifkdy.com/ 一款全能影视搜索引擎,里面的视频资源都是高清的,而且每天不重样,适合喜欢看影视的朋友。二、 BT搜索http..._最强搜索引擎入口

【券商报告】基础化工行业月报:行业维持景气态势,继续关注制冷剂和化纤——附下载链接_化纤 行研报告-程序员宅基地

文章浏览阅读63次。来源 | 中原证券全球基础化学品需求总量约为 6.5 亿吨/年,其中乙烯、丙烯、甲醇、氯气、苯和对二甲苯六大价值链约占其中的 80%。2020 年, 这 6 种化学品需求较前一年下降约 1000 万吨,下降幅度远低于预期。基础化学品需求下降幅度相对较小主要是因为 50%的基础化学品作为塑料被消费。与食品、饮料、卫生和医疗包装等 相关的非耐用品的乙烯需求得到聚乙烯(PE)需求支撑,这一块需求占到全球乙烯需求的 63%。 此外,对于乙烯行业,由于前一段时期盈利持续强劲和新项目投资增加,造成需求与产能之间 的_化纤 行研报告

mysql 单独join_MySQL的各种Join-程序员宅基地

文章浏览阅读564次。写在最前面所有的内容都是通过资料自行整理总结出来的,包括SQL代码也是自己一行一行自己敲出来试过的,因此未授权禁止进行转载由于本人能力有限,自行进行整理的内容未必100%准确,因此若有内容不当之处,还请各位大神指正为了更好理解其中的各种 join,现在建立两张表 tbl_subject 和 tbl_student_score ,表结构如下:tbl_subject 表结构及内容.pngtbl_stu..._mysql 单独使用join

图像处理与计算机视觉基础,经典以及最近发展--转载-程序员宅基地

文章浏览阅读277次。*************************************************************************************************************** 在这里,我特别声明:本文章的源作者是 杨晓冬 (个人邮箱:[email protected])。原文的链接是http://www.iask.s..._scale space localization, blur, and contour-based image coding