【jQuery】jQuery基本操作(样式操作 内容操作 节点操作 属性操作 节点遍历)

news2024/12/25 8:54:08

文章目录

    • 1、样式操作
    • 2、内容操作
      • 2-1 html()
      • 2-2 text()
      • 2-3 val()
    • 3、节点操作
      • 3-1 创建
      • 3-2 插入
      • 3-3 删除
      • 3-4 替换
      • 3-5 复制
    • 4、属性操作
    • 5、节点遍历
    • 6、DOM操作

DOM 操作分为三类:

​ DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElementById()

​ HTML-DOM:用于处理HTML文档,如document.forms

​ CSS-DOM:用于操作CSS,如element.style.color=“green”

JavaScript用于对(x)html文档进行操作,它对这三类DOM操作都提供了支持

jQuery 对 JavaScript 中的 DOM 操作进行了封装:

  • 样式操作

  • 内容及 Value 值操作

  • 节点及节点属性操作

  • 节点遍历

1、样式操作

方法描述
$(selector).css(“property”, “value”);设置单个样式
$(selector).css({ “property1”: “value1”, “property2”: “value2” });设置多个样式
$(selector).css(“property”);获取样式
$(selector).addClass(“className1 [className2 … classNameN]”);追加样式
$(selector).removeClass(“className1 [className2 … classNameN]”);移除样式
$(selector).toggleClass(className, [state]);切换样式
$(selector).hasClass(“class-name”);判断样式

toggleClass 如果元素中已经有指定的类,则移除这个类;如果没有,则添加这个类。这个方法可以用于实现一些简单的样式切换效果,例如:显示/隐藏、启用/禁用等。

  • className: 需要添加或移除的 CSS 类名(一个或多个类名,以空格分隔)。
  • state (可选): 布尔值(truefalse),指定是否添加或移除类。true 表示添加类,false 表示移除类。如果省略这个参数,则方法会根据当前元素是否已经有该类来决定是添加还是移除。
// 切换单个类
$(".box").toggleClass("highlight");
// 检查 .box 元素是否具有 highlight 类。如果有则移除,没有则添加

// 切换多个类
$(".box").toggleClass("highlight active");
// 同时切换 highlight 和 active 两个类

// 使用 state 参数
$(".box").toggleClass("highlight", true);  // 总是添加 highlight 类
$(".box").toggleClass("highlight", false); // 总是移除 highlight 类
// 明确地指定是否添加或移除类

应用

// 设置单个样式
$(this).css("border","5px solid #f5f5f5");
// 设置多个样式
$(this).css({"border":"5px solid #f5f5f5","opacity":"0.5"});
// 获取样式
var color = $(".box").css("color");
.text{ padding:10px;}
.content {background-color:#FFFF00;}
.border {border:1px dashed #333;}
// 追加样式
$("h2").mouseover(function() {
    $("p").addClass("content border");
});
// 移除样式
$("h2").mouseout(function() {
    $("p").removeClass("text content");
});
// 切换样式
$("h2").click(function() {
    $("p").toggleClass("content  border");
});
// 判断样式
$("h2").mouseover(function() {
    if(!$("p").hasClass("content")){
        $("p").addClass("content");
    }
});
$("h2").mouseout(function() {
    if($("p").hasClass("content")) {
        $("p").removeClass("content");
    }
});

2、内容操作

2-1 html()

html() 可以对 HTML 代码进行操作,类似于 JS 中的 innerHTML 。使用 html() 可以插入带有HTML标签的文本,因此它可以用来动态生成页面结构。

2-2 text()

text() 方法用于获取或设置被选元素中的纯文本内容。使用 text() 插入的内容会被浏览器解析为纯文本,所有的HTML标签都会被转义成普通的字符显示。

<p id="content">我是一个P标签</p>
<button id="updateContent">html()</button>
<button id="clearContent">text()</button>

<script>
    $(document).ready(function(){
        $('#updateContent').click(function(){
            // html()方法更新内容
            $('#content').html('<h1>我换成了h1标签</h1>');
        });

        $('#clearContent').click(function(){
            // text()方法清空内容并添加纯文本
            $('#content').text('我只替换了内容');
        });
    });
</script>

html()text() 方法的区别

语法格式参数说明功能描述
html()无参数用于获取第一个匹配元素的HTML内容或文本内容
html(content)content为元素的HTML内容用于设置所有匹配元素的HTML内容或文本内容
text()无参数用于获取所有匹配元素的文本内容
text(content)content为元素的文本内容用于设置所有匹配元素的文本内容

2-3 val()

val() 方法主要用于处理表单元素的值,如 <input><textarea><select> 元素。这个方法可以用来获取这些元素的当前值,也可以用来设置这些元素的新值。

// 获取值
var inputValue = $('#myInput').val();
// 设置值
$('#myInput').val('Hello, world!');

应用场景

// 对于 <input> 元素:可以用来获取或设置文本框、密码框、隐藏域等的值。
// 获取文本框的值
var text = $('input[type="text"]').val();
// 设置文本框的值
$('input[type="text"]').val('新的文本');

// 对于 <textarea> 元素:可以用来获取或设置多行文本框的值。
// 获取多行文本框的值
var textAreaContent = $('textarea').val();
// 设置多行文本框的值
$('textarea').val('新的多行文本');

// 对于 <select> 元素:可以用来获取或设置下拉列表的选定值。
// 获取下拉列表的选定值
var selectedOption = $('select').val();
// 设置下拉列表的选定值
$('select').val('optionValue');

当一个表单控件有多个选项被选中时(例如多选的 <select>),val() 返回的是一个数组。如果想获取或设置复选框或单选按钮的值,需要注意只有当它们被选中时才有效。

// 获取选中的复选框的值
var checkedValues = [];
$('input[type="checkbox"]:checked').each(function() {
    checkedValues.push($(this).val());
});

3、节点操作

3-1 创建

工厂函数$()用于获取或创建节点

$(selector):通过选择器获取节点

$(element):把 DOM 节点转化成 jQuery 节点

$(html):使用 HTML 字符串创建 jQuery 节点

var $newNode  = $("<li></li>");
var $newNode1 = $("<li>你喜欢哪些冬季运动项目?</li>");
var $newNode2 = $("<li title='last'>北京申办冬奥会是再合适不过了!</li>");

3-2 插入

元素内部插入子节点

语法功能示例
append(content)$(A).append(B)表示将B追加到A中 ( " u l " ) . a p p e n d ( ("ul").append( ("ul").append(newNode1);
appendTo(content)$(A).appendTo(B)表示把A追加到B中$newNode1.appendTo(“ul”);
prepend(content)$(A).prepend(B)表示将B前置插入到A中 ( " u l " ) . p r e p e n d ( ("ul").prepend( ("ul").prepend(newNode1);
prependTo(content)$(A).prependTo(B)表示将A前置插入到B中$newNode1.prependTo(“ul”);

元素外部插入同辈节点

语法功能示例
after(content)$(A).after(B)表示将B插入到A之后 ( " u l " ) . a f t e r ( ("ul").after( ("ul").after(newNode1);
insertAfter(content)$(A).insertAfter(B)表示将A插入到B之后$newNode1.insertAfter(“ul”);
before(content)$(A).before(B)表示将B插入至A之前 ( " u l " ) . b e f o r e ( ("ul").before( ("ul").before(newNode1);
insertBefore(content)$(A).insertBefore(B)表示将A插入到B之前$newNode1.insertBefore(“ul”);

appendTo(), prependTo(), insertAfter(), 和 insertBefore() 方法与 append(), prepend(), after(), before() 方法的主要区别在于它们的作用对象不同。

前一组方法是以被操作元素为对象,将其移动或复制到目标位置;

而后一组方法则是以目标位置为对象,在其位置上插入新的内容。

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<body>
    <div id="container">
        <h1>原始标题</h1>
        <p id="para1">这是第一个段落。</p>
        <div id="childContainer">
            <p>这是内部容器的第一个段落。</p>
        </div>
    </div>
    <div id="sibling2">这是另一个兄弟元素。</div>
    <script>
        $(document).ready(function() {
            // 在内部插入子节点
            $('#container').append('<p>这是追加到容器末尾的新段落。</p>');
            $('#childContainer').prepend('<p>这是插入到内部容器开头的新段落。</p>');

            // 在外部插入同辈节点
            $('#para1').after('<p>这是插入到第一个段落之后的新段落。</p>');
            $('#container').before('<div>这是插入到容器之前的兄弟元素。</div>');
        });
    </script>
</body>
$(document).ready(function() {
    // 创建一些新的元素
    var newPara = $('<p>这是追加到容器末尾的新段落。</p>');
    var newPara2 = $('<p>这是插入到内部容器开头的新段落。</p>');
    var newDiv = $('<div>这是插入到第一个段落之后的新段落。</div>');
    var newDiv2 = $('<div>这是插入到容器之前的兄弟元素。</div>');
    // 使用 appendTo 方法
    newPara.appendTo('#container');
    // 使用 prependTo 方法
    newPara2.prependTo('#childContainer');
    // 使用 insertAfter 方法
    newDiv.insertAfter('#para1');
    // 使用 insertBefore 方法
    newDiv2.insertBefore('#container');
});
这是插入到容器之前的兄弟元素。
原始标题
这是第一个段落。
这是插入到第一个段落之后的新段落。
这是插入到内部容器开头的新段落。
这是内部容器的第一个段落。
这是追加到容器末尾的新段落。
这是另一个兄弟元素。

3-3 删除

jQuery 提供了三种删除节点的方法

remove():删除整个节点

empty():清空节点内容

detach():删除整个节点,保留元素的绑定事件、附加的数据

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<div id="container">
    <h1>标题</h1>
    <p id="para1">这是第一个段落。</p>
    <div id="childContainer">
        <p>这是内部容器的第一个段落。</p>
        <button id="btnRemove">删除内部容器</button>
        <button id="btnEmpty">清空内部容器</button>
        <button id="btnDetach">分离内部容器</button>
    </div>
</div>

<script>
    $(document).ready(function() {
        // 为按钮绑定点击事件
        $('#btnRemove').click(function() {
            $('#childContainer').remove();
            console.log("使用 remove() 删除 #childContainer 后的 DOM:");
            console.log($('#container').html());
        });

        $('#btnEmpty').click(function() {
            $('#childContainer').empty();
            console.log("使用 empty() 清空 #childContainer 后的 DOM:");
            console.log($('#container').html());
        });

        $('#btnDetach').click(function() {
            var detached = $('#childContainer').detach();
            console.log("使用 detach() 分离 #childContainer 后的 DOM:");
            console.log($('#container').html());
            // 重新附加到另一个位置作为演示
            detached.appendTo('#container');
            console.log("重新附加到 #container 后的 DOM:");
            console.log($('#container').html());
        });
    });
</script>

结果

remove()empty()detach()
删除内部容器清空内部容器分离内部容器
在这里插入图片描述在这里插入图片描述在这里插入图片描述
#childContainer 及其所有子元素都将被移除#childContainer 的所有子元素将被清空,但 #childContainer 本身仍然存在#childContainer 将被从当前位置移除,但其事件处理程序和数据会被保留下来。

3-4 替换

replaceWith()replaceAll() 用于替换某个节点

var $newNode1 = $("<li>你喜欢哪些冬季运动项目?</li>");
$(".gameList li:eq(2)").replaceWith($newNode1);
$($newNode1).replaceAll(".gameList li:eq(2)");

3-5 复制

clone() 用于复制某个节点

语法:$(selector).clone([includeEvents]);

  • 参数 ture 或 flase, true 复制事件处理,flase 反之
$(".gameList li:eq(1)").click(function(){
    $(this).clone(true).appendTo(".gameList");
})
$(".gameList li:eq(2)").click(function(){
    $(this).clone(false).appendTo(".gameList");
})

4、属性操作

操作描述
attr()获取与设置元素属性
removeAttr()删除元素属性
<body>
    <img id="myImage" src="image.jpg" alt="Example Image" />
    <button id="changeSrc">更换图片</button>
    <button id="removeAlt">移除属性</button>
    <script>
        $(document).ready(function(){
            // 当点击改变图片源按钮时
            $('#changeSrc').click(function(){
                // 改变图片的src属性
                $('#myImage').attr('src', 'new_image.jpg');
            });

            // 当点击移除alt文本按钮时
            $('#removeAlt').click(function(){
                // 移除图片的alt属性
                $('#myImage').removeAttr('alt');
            });
        });
    </script>
</body>

5、节点遍历

遍历子元素描述示例
children()获取所有子元素(不含孙子元素)$(“section”).children();
遍历同辈元素描述示例
next([expr])获取紧邻匹配元素之后的元素$(“section”).next()
prev([expr])获取紧邻匹配元素之前的元素$(“section”).prev()
slibings([expr])获取位于匹配元素前面和后面的所有同辈元素$(“section”).siblings()
遍历前辈元素描述示例
parent()获取元素的父级元素$(“section”).parent()
parents()获取元素的祖先元素$(“section”).parents()
其他遍历方法描述
each(function)迭代 jQuery 对象,为每个匹配的元素执行一个函数。
end()结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态
eq(index)根据索引定位匹配元素
filter(selector|function)根据选择器或函数定位匹配元素
find(selector|element)获取当前匹配元素集中每个元素的后代,按选择器、jQuery 对象或元素进行筛选
first()获取第一个元素

each() 方法允许遍历一个 jQuery 对象集合(通常是由选择器选取的一组元素),或者遍历一个普通的 JavaScript 对象或数组。each() 方法接受一个函数作为参数,该函数会在每个成员上执行。

$(selector).each(function(index, element) {
    // 代码
});
  • index 是当前元素在集合中的索引位置(从 0 开始)。
  • element 是当前的 DOM 元素,可以使用 $(this)element 访问。
$.each(collection, function(index, value) {
    // 代码
});
  • collection 可以是数组或对象。
  • 如果 collection 是数组,那么 index 就是数组中当前元素的索引,而 value 是该索引对应的值。
  • 如果 collection 是对象,那么 index 就是对象属性的键名,而 value 是与该键名关联的属性值。
// 遍历数组
var numbers = [1, 2, 3, 4, 5];
$.each(numbers, function(index, value) {
    console.log("Index: " + index + ", Value: " + value);
});
// 遍历对象
var person = {name: "John", age: 30, city: "New York"};
$.each(person, function(key, value) {
    console.log("Key: " + key + ", Value: " + value);
});

举例:遍历页面中所有的 <li> 元素,并将每个元素的索引和文本内容打印到浏览器的控制台。

<!-- each(function) -->
<ul>
    <li>foo</li>
    <li>bar</li>
</ul>
<script>
    // 选择列表项并遍历
    $("li").each(function(index) {
        console.log(index + ": " + $(this).text());
    });
</script>

JavaScript 写法

var listItems = document.querySelectorAll('li'); // 获取所有 <li> 元素
listItems.forEach(function(item, index) { // 遍历这些元素
    console.log(index + ": " + item.textContent); // 输出索引和文本内容
});
<!-- end() -->
<ul id="myList">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
<script>
    // 选择所有的<li>元素
    var allItems = $('#myList li');
    // 在所有<li>元素上做一些事情
    allItems.css('color', 'blue');
    // 选择第一个<li>元素并做些事情
    allItems.first().css('fontWeight', 'bold').end()
		.css('text-decoration', 'underline'); // 回到了所有<li>元素的状态 
</script>
<!-- eq(index) -->
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>
<script> 
	$("li").eq(2 ).css("background-color", "red"); // list item 3变化
    $("li").eq(-2).css("background-color", "red"); // list item 4变化
    $ "li").eq(5 ).css("background-color", "red"); // 无变化
</script>
<!-- filter(selector) -->
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
    <li>list item 6</li>
</ul>
<script>
    // 偶数项变化
    $("li").filter(":nth-child(2n)").css("background-color", "red");
</script>
<!-- find(selector) -->
<p><span>Hello</span>, how are you?</p>
<p>Me? I'm <span>good</span>.</p>

<script>
    $("p").find("span").css("color", "red"); // Hello good 字体变化
</script>
<!-- first() -->
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
</ul>
<script>
	$("li").first().css("background-color", "red"); // list item 1变化
</script>

6、DOM操作

操作描述
css()设置或返回匹配元素的样式属性
height([value])设置或返回匹配元素的高度
width([value])设置或返回匹配元素的宽度
offset([value])返回以像素为单位的top和left坐标。仅对可见元素有效
offsetParent()返回最近的已定位祖先元素。定位元素指的是元素的CSS position值被设置为relative、absolute或fixed的元素
position()返回第一个匹配元素相对于父元素的位置
scrollLeft([position])参数可选。设置或返回匹配元素相对滚动条左侧的偏移
scrollTop([position])参数可选。设置或返回匹配元素相对滚动条顶

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2216451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言中的时间比较与时区处理

文章目录 问题背景问题分析验证时区问题 解决方案方法 1&#xff1a;使用本地时区解析时间方法 2&#xff1a;将 time.Now() 转换为 UTC 最终结果总结 在后端开发中&#xff0c;时间处理往往是不可避免的&#xff0c;尤其是涉及到跨时区的应用时&#xff0c;时区问题常常会引发…

基于yolov5的手机屏幕缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; yolov5&#xff0c;手机屏幕缺陷检测系统&#xff0c;支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于 YOLOv5 的手机屏幕缺陷检…

创建PV时报错:任务清单存在生产版本的不一致

创建PV时报错&#xff1a;任务清单存在生产版本的不一致。 输入的批量不一致。 批量改为一致99&#xff0c;999&#xff0c;999.000后&#xff0c;报错解决。

Window入侵排查思路-应急响应实战笔记

0x00 前言 当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时&#xff0c;急需第一时间进行处理&#xff0c;使企业的网络信息系 统在最短时间内恢复正常工作&#xff0c;进一步查找入侵来源&#xff0c;还原入侵事故过程&#xff0c;同时给出解决方案与防范措…

对接优惠折扣影票接口有什么好处?

对接电影票接口可以为开发者、商家和用户提供多种好处&#xff0c;以下是一些主要优势&#xff1a; 便捷性&#xff1a;用户可以直接在应用程序或网站上查询电影信息、选择座位和购票&#xff0c;无需离开平台即可完成整个购票流程。 提高用户粘性&#xff1a;为用户提供一站式…

无锁队列实现(Michael Scott),伪代码与c++实现

一、Michael & Scoot 原版伪代码实现 structure pointer_t {ptr: pointer to node_t, count: unsigned integer}structure node_t {value: data type, next: pointer_t}structure queue_t {Head: pointer_t, Tail: pointer_t}initialize(Q: pointer to queue_t)node new_…

薪资管理系统原型PC端+移动端 Axure原型 交互设计 Axure实战项目

薪资管理系统原型PC端移动端 Salary Management System Prototype 薪资管理系统原型图是一种以图形化方式展示系统界面和功能交互的设计图形。该原型图旨在呈现薪资管理系统的整体架构、界面布局和用户交互流程&#xff0c;为开发团队和利益相关者提供一个清晰而具体的概念。…

CSS 实战录: 双栏、四等分、不等间距、自适应...

引言 一个当初困扰我许久的设计稿还原问题, 故在此做个简单记录!! 设计稿布局大概如下图所示 整体分为左右两部分同时划分了模块 A B C DA B C 之间的间距为 24px, C D 之间的间距为 64px整体宽度 100% 自适应铺满, 并且 A B C D 宽度保持一致 那么问题来了, 假设给出下面 DO…

Python | Leetcode Python题解之第473题火柴拼正方形

题目&#xff1a; 题解&#xff1a; class Solution:def makesquare(self, matchsticks: List[int]) -> bool:totalLen sum(matchsticks)if totalLen % 4:return FalsetLen totalLen // 4dp [-1] * (1 << len(matchsticks))dp[0] 0for s in range(1, len(dp)):fo…

【市场解读】传统到端到端的智驾分水岭已至

参考文献&#xff1a;平安证券《汽车行业深度报告&#xff1a;智驾分水岭已至》 关键词学习 端到端智驾系统end to end “端到端”智驾是一种新的智能驾驶技术&#xff0c;不再依赖于传统的感知原件&#xff0c;而是通过算法、AI、模型架构数据迭代来实现自主学习和思考能力…

MySQL数据库从入门到精通 第1讲 基本概念

MySQL数据库从入门到精通 第1讲 基本概念 小可爱们&#xff0c;接下来我们要学习的知识是数据库相关的知识&#xff0c;从本贴开始&#xff0c;从0基础带大家入门到精通&#xff0c;要加油哦~ 1 前言 1.1 为什么要学习数据库&#xff1f; 那我们首先要搞清楚第一个问题&…

深入了解EasyNVR及EasyNVS,EasyNVR连接到EasyNVS当显示授权超时如何解决?又因为什么原因?

我们先来了解NVR批量管理软件/平台EasyNVR&#xff0c;它深耕市场多年&#xff0c;为用户提供多种协议&#xff0c;兼容多种厂商设备&#xff0c;包括但不限于支持海康&#xff0c;大华&#xff0c;宇视&#xff0c;萤石&#xff0c;天地伟业&#xff0c;华为设备。 NVR录像机…

华为FreeBuds 6i戴久了会耳朵胀痛吗?该怎么办?

华为FreeBuds 6i戴久了&#xff0c;会有耳朵胀痛的感觉吗&#xff1f;其实可能是没选对适合自己的耳塞&#xff0c;给你们分享几个佩戴更舒服的方法&#xff0c;一起来看看~ 首先和大家说说为什么华为FreeBuds 6i戴久了不舒服&#xff0c;一方面是耳塞尺寸不合适&#xff0c;另…

Visual Studio 2022 配置 Boost 库

一、使用预编译版本 尽量不要使用预编译版本&#xff0c;因为可能构建的不完全&#xff0c;还得重新构建&#xff0c;不如一步到位 1. 下载预编译的 Boost 库 下载&#xff1a;Boost C Libraries - Browse /boost-binaries at SourceForge.net 2. 选择 msvc 版本&#xff0…

如何将一张图片分成四份,四宫格?图片分割的8种简单方法

如何将一张图片分成四份&#xff0c;四宫格&#xff1f;在日常的图像处理任务中&#xff0c;我们时常会遇到各种特殊的需求。今天&#xff0c;我就遇到了一项颇具挑战性的任务——在特殊情况下&#xff0c;需要将一张图片精确地分成四份&#xff0c;形成一个标准的四宫格。这项…

SQL第15课——插入数据

介绍利用SQL的insert语句将数据插入表中。 15.1 数据插入 select是最常用的语句&#xff0c;但是还有3个常用的SQL语句&#xff0c;第一个就是insert&#xff0c; insert&#xff1a;用来将行插入&#xff08;或添加&#xff09;到数据库表。插入的3中方式&#xff1a; 1. …

光伏仿真系统在光伏项目开发中有哪些应用场景?

光伏仿真系统在光伏项目开发中的应用场景广泛&#xff0c;涵盖了从项目规划、设计优化到运维管理的全过程。 一、项目规划与选址 1、气象模拟与评估 光伏仿真系统能够基于历史气象数据和先进的预测模型&#xff0c;模拟不同地理位置、不同季节和时间段的光照强度、温度、湿度…

网络层及ip报头

★★★★★默写&#xff1a; A类&#xff1a;0~127 B类&#xff1a;128~191 C类&#xff1a;192~223 A类私网&#xff1a;10.0.0 - 10.255.255.255 B类私网&#xff1a;172.16.0.0 - 172.31.255.255 C类私网&#xff1a;19.168.0.0 - 192.168.255.255 特殊&#xff1a; 0.0.0…

百度智能云新一代云原生产品加速 AI 原生应用落地

本文整理自百度云智峰会 2024 —— 云原生论坛的同名演讲。 今天为大家分享在过去的一年里&#xff0c;围绕 AI 原生的大背景下&#xff0c;百度智能云在基础公有云的计算、存储、网络以及云原生等产品和技术方面所做出的核心工作。 随着大模型所带来的 AI 技术的代际演化&…

用Spring AI 做智能客服,基于私有知识库和RAG技术

Java智能客服系统运用RAG技术提升答疑精准度 基于Spring ai 的 RAG&#xff08;检索增强生成&#xff09;技术&#xff0c;Java智能客服系统能够利用私有知识库中的信息提供更准确的答疑服务。 它的核心思路是&#xff1a; 首先&#xff0c;将客服QA以Word形式导入到系统中&…