参考文章
掘金文章1
黑马笔记2
总结
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
window.jQuery = window.$ = jQuery;

- 注意区分dom元素和jQuery对象, 两者的属性和方法不互通
- jQuery对象和dom元素互相转换
***
1,jQuery对象是个伪数组对象, 数组中的第一个对象就是dom元素
2,使用$(参数)函数, 传入dom元素,就把dom元素转化为了jQuery对象
***
var div = dom.getElementById("#div1");
$(div).html();
var jqueryDiv = $("#div1")
jqueryDiv.get(0)
jqueryDiv[0]
- $('span',this)相当于$(this).find($('span'))
- 不要把p标签当容器使用,层级会发生变化

1.1 选择器
基本选择器:
$("*")
$("#ceshi");
$(".ceshi");
$("div");
$("#ceshi > div:first");
$("#ceshi, div");
$("div:first");
$("div:last");
$("div:even");
$("div:odd");
$("div:eq(1)");
$("div:gt(3)");
$("div:lt(3)");
$("input:focus");
$("div:animated");
$("div:hidden");
$("div:visible");
$("[id]");
$("[class='ceshi']");
$("[class!='ceshi']");
$("[class$='ceshi']");
内容选择器:
$("div:contains('ceshi')");
$("div:empty");
$("div:parent");
$("div:has(p)");
表单选择器:
$(":input"); // 选中所有 input, textarea, select 和 button 元素
$(":text"); // 选中所有 type="text" 的 input元素
$(":password"); // 选中所有 type="password" 的 input 元素
$(":radio"); // 选中所有 type="radio" 的 input 元素
$(":checkbox"); // 选中所有 type="checkbox" 的 input 元素
$(":submit"); // 选中所有 type="submit" 的 input 元素
$(":reset"); // 选中所有 type="reset" 的 input 元素
$(":button"); // 选中所有 type="button" 的 input 元素
$(":file"); // 选中所有 type="file" 的 input 元素
$(":image"); // 选中所有 type="image" 的 input 元素 (出场率最低的type类型)
$(":enabled"); // 选中所有激活的input元素
$(":disabled"); // 选中所有禁用的input元素
$(":selected"); // 选中所有被选取的input元素
$(":checked"); // 选中所有被选中的input元素
$("#upparent_name").find("option:selected").text() // 获得id=upparent_name的下拉框选中的option的文本内容
1.2 属性操作
基本属性操作:
$("div").attr("class"); // 返回文档中所有div元素的class属性值
$("div").attr("class","ceshi"); // 设置所有div的class属性值为ceshi
$("div").removeAttr("class"); // 删除文档中所有div的class属性 (不建议使用)
$("img").removeProp("src"); // 删除img的src属性 (建议使用)
$("input[type='checkbox']").prop("checked", true); // 选择所有被选中的复选框
$("input[type='checkbox']").prop("checked", false); // 选择所有没被选中的复选框
CSS属性操作
$("div").addClass("selected"); // 为div元素加上 'selected' 类
$("div").removeClass("selected"); // 从div元素中删除 'selected' 类
$("div").toggleClass("selected"); // 如果存在就删除,否则就添加
$("div").get(0).className = 'container white' //重置div的class为'container white'
HTML获取值和写入信息操作
- .html()是用来读取元素的html内容(包括html标签);
- .text()用来读取元素的纯文本内容,包括其后代元素;
- .val()是用来读取表单元素的”value”值;
$('p').html();
$("p").html("ceshi <b>ceshi</b>!");
$('p').text();
$("p").text("ceshi");
$("input").val();
$("input").val("ceshi");
1.3 jQuery对CSS的操作
样式:
$("p").css("color");
$("p").css("color","green");
$("p").css({ "color": "green", "background": "yellow" });
位置:
$('p').offset();
$('p').offset().top;
$('p').offset().left;
$("p").position();
$(window).scrollTop();
$(window).scrollLeft();
$(window).scrollTop('100');
$(window).scrollLeft('100');
大小尺寸:
$("p").height(); // 获取p元素的高
$("p").width(); // 获取p元素的宽
$("p:first").innerHeight(); // 获得第一个p元素的区域高度(包含上下padding,不包含上下border和margin)
$("p:first").innerWidth(); // 获得第一个p元素的区域宽度
$("p:first").outerHeight(); // 获得第一个p元素(包括padding,border,margin)
$("p:first").outerWidth(); // 获得第一个p元素
$("p:first").outerHeight(true); // 为true时包括边距
1.4 jQuery对文档的处理
内部插入:
$("p").append("<b>ceshi</b>"); // 在每个p元素内的最后面追加内容
$("<b>ceshi</b>").appendTo("p"); // 将内容追加到p元素的最后面
$("p").prepend("<b>ceshi</b>"); // 在每个p元素内的最前面追加内容
$("<b>ceshi</b>").prependTo("p"); // 将内容追加到p元素的最前面</pre>
外部插入:
$("div").after("<p>'ceshi'</p>");
$("div").before("<p>'ceshi'</p>");
$("p").insertAfter("#ceshi");
$("p").insertBefore("#ceshi");
替换:
$("p").replaceWith("<b>ceshi. </b>"); // 将匹配到的所有p元素替换成<b>ceshi. </b>(可以是文档内容和标签元素)
$("<b>ceshi. </b>").replaceAll("p"); // 将元素或内容替换给所有选中的p元素
删除:
$("div").empty();
$("div").remove();
$("div").detach();
复制:
$("p").clone();
$("p").clone(true);
1.5 事件
页面载入事件(两种最常见的方式,推荐第一种方法):
$(document).ready(function () {
});
$(function () {
})
常用事件:
$("button").click();
$("button").dblclick();
$("input[type=text]").focus();
$("input[type=text]").blur();
$("button").mousedown();
$("button").mouseup();
$("p").mousemove();
$("p").mouseover();
$("p").mouseout();
$(window).keydown();
$(window).keypress();
$("input").keyup();
$(window).scroll();
$(window).resize();
$("input[type='text']").change();
$("input").select();
$("form").submit();
$(window).unload();
(event object)对象,所有事件函数都可以传入event参数方便处理事件:
event.pageX
event.pageY
event.type
event.which
event.data
event.target
event.preventDefault()
event.stopPropagation()
例:
$("p").click(function(event){
alert(event.type);
});
1.6 动画效果
基本:
$("p").show(); // 显示匹配的元素
$("p").show("slow"); // 参数表示速度,("slow","normal","fast"),也可为1000毫秒
$("p").hide(); // 隐藏匹配的元素
$("p").toggle(); // 切换匹配元素的显示和隐藏
滑动:
$("p").slideDown("1000");
$("p").slideUp("1000");
$("p").slideToggle("1000");
淡入淡出:
$("p").fadeIn("1000");
$("p").fadeOut("1000");
$("p").fadeToggle("1000");
$("p").fadeTo("slow", 0.6);
对象访问控制:
$.trim(); // 去除字符串两端的空格
$.each(); // 遍历一个数组或对象,for循环
$.inArray(); // 返回一个值在数组中的索引位置,不存在返回-1
$.grep(); // 返回数组中符合某种标准的元素
$.extend(); // 将多个对象,合并到第一个对象
$.makeArray(); // 将对象转化为数组
$.type(); // 判断对象的类别(函数对象、日期对象、数组对象、正则对象等等)
$.isArray(); // 判断某个参数是否为数组
$.isEmptyObject(); // 判断某个对象是否为空(不含有任何属性)
$.isFunction(); // 判断某个参数是否为函数
$.isPlainObject(); // 判断某个参数是否为用"{}"或"new Object"建立的对象
$.support(); // 判断浏览器是否支持某个特性
练习
$("#sing p").filter('#id1', function (index) {
return 1;
}).css("background-color", "yellow");
$("div").each(function(){
alert($(this).text());
});
console.log($("#span2").siblings());
console.log($("#span2").prev()[0].innerHTML)
console.log($("#span2").next()[0].innerHTML)
console.log($("#span2").prevAll());
console.log($("#span2").nextAll());
console.log($("#span2").parent()[0])
console.log($("#span2").parents())
console.log($("#div1>span"));
console.log($("#div1").children('span'))
console.log($("#div1 span"));
console.log($("#div1").find('span'))
console.log('----------获取子代中的某个元素--------------')
console.log($("#div1>span")[0])
console.log($("#div1>span").get(1))
console.log($("#div1>span").eq(0))
console.log($("#div1>span").eq(0)[0])
console.log($("#div1").children('span')[0]);
console.log($("#div1").children('span').get(1));

- 获取所有div标签、指定id的span标签、span的同级下一个元素、span的同级上一个元素、父元素、子元素

参考1
node(节点)和element(元素)区别
扩展
- node由元素节点和文本节点组成,
- 获取上级或下级元素时, 推荐使用
element相关的元素
- 最上层节点是document,可以是空节点不包含任何元素
- 不存在最上层元素
![[1].png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4f6615738d624f54bae0be37e4ccc834~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
console.log(div.parentElement.parentElement.parentElement.parentElement.nodeName);
console.log(div.parentNode.parentNode.parentNode.parentNode.nodeName);