JQuery
JQuery语法
1、使用JQuery必须先导入JQuery.x.x.x.js文件
2、JQuery中的选择器
$("选择器").函数();
① $是JQuery的缩写,即可以用JQuery("选择器").函数();
② 选择器,可以是任何的CSS支持的选择符;
3、文档就绪函数:防止在文档为加载完成之前,运行JQuery代码;
$(document).ready(function(){
JQuery代码
})
简写形式:$(function(){});
[文档就绪函数和window.onload的区别]
① window.onload必须等到网页中的所有内容加载完成后才会执行代码(包括图片视频等资源)
文档就绪函数,只需要在网页DOM结构加载完毕后,就可以执行代码
② window.onload只能写一个,写多个只会执行最后一个
文档就绪函数,可以写多个,并且不会被覆盖
4、原生js对象与 JQuery对象
① 使用$("")调用的是JQuery对象,只能调用JQuery函数,而不能使用原生JS的事件与函数
$("p").click();√
解释:$("p")是JQuery对象,.onclick()是原生js事件。
同理,使用document.getElement系列获取的是原生js对象,也不能使用JQuery相关函数。
② 原生JS对象转为jQuery对象,可以使用$包裹原生JS对象,即可转为JQuery对象。
var p=document.getElementByTagName("p");
$(p).click();√ 原生JS已转为JQuery对象
③ JQuery对象转为原色JS对象,使用.get(index)或[index]
$("#p").get(0).onclick=function(){
}
$("#p").[0].onclick=function(){
}
5、jQuery.解决多库冲突
由于其他的JS库也可能使用$作为自身标识,导致其他js 库与jQuery冲突
要解决冲突,可以放弃使用$直接使用jQuery对象。
[使用自执行函数传入jQuery对象简化写法]
jQuery.noConflict();//调用这个函数,将$控制权让渡给其他类库,即 jQuery.
!function(j){
函数之中,就可以用字母j代替jQuery对象
}(jquery);
jQueryDOM操作及其他函数
使用$()直接创建一个标签节点
将创建好的节点,插入到指定位置。
在#div1内部的最后,直接插入一个节点。
$("#div1").append("<p>这是被插入的p标签</p>");
把新节点插入到#div1中
$("<p>这是被插入的p标签</p>").appendTo("#div1");
在#div1内部的开头,直接插入一个节点。
$("#div1").prepend("<p>这是被插入的p标签</p>");
$("#div1").after("<p>这是被插入的p标签</p>");
$("<p>这是被插入的p标签</p>").insertBefore("#div1");
把每个p标签外面,都包裹一层div
$("p").wrap("<div></div>");
把所有的p标签,包裹在同一个div中
$("p").wrapAll("<div></div>");
把#div1里面的所有子元素,用<div>包裹起来
$("#div1").wrapInner("<div></div>");
/ 删除元素的父标签
$("#p").unwrap();
将所有匹配的p标签,全部换为span标签
$("p").replaceWith("<span>111</span>");
用span元素,替换掉所有p标签
$("<span>111</span>").replaceAll("p");
删除#div1中的所有子元素。 但是#div1依然保留空标签
$("#div1").empty();
直接从DOM中,删除#div1以及所有子元素
$("#div1").remove();
直接从DOM中,删除#div1以及所有子元素
$("#div1").detach();
【remove和detach异同】
1、相同点:
① 都会把当前标签,以及当前标签的所有子节点,全部删除;
② 都可以在删除时,把当前节点返回。并可以使用变量接受返回的节点,以便后期恢复;
2、 不同点:
使用接受的节点,恢复原节点时。
remove只能恢复节点的内容,但是事件绑定,不能再恢复;
detach不但恢复节点的内容,还能再恢复 事件的绑定;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?