jQuery学习_jquery remove删除元素不彻底,2024年前端技术下半场在哪

31 阅读5分钟
+ [2. 多库共存](#2__314)
+ [3. jquery插件](#3_jquery_317)

一、jQuery的概述

JS库
在这里插入图片描述
常见的JavaScript库:jQuery、Prototype、YUI、Dojo、Ext JS、移动端的zepto

在这里插入图片描述
在这里插入图片描述

二、jQuery的基本使用

jQuery的下载:jquery.com/
引入jQuery代码

jQuery的入口函数

    <script>
        //jquery的入口函数 等待dom结构渲染完毕即可执行内部代码 不必等到所有外部资源加载完成
        //相当于原生js中的DOMContentLoaded 而不是load(等待页面文档、外部js、css、图片加载完)
        //第一种
        $(document).ready(function () {
            $('div').hide();
        })
        //第二种(推荐)
        $(function () {
            $('div').hide();
        })
    </script>

jQuery顶级对象
jQuery的别称,代码中可以使用jQuery代替是jQuery的别称,代码中可以使用jQuery代替
jQuery的顶级对象,相当于原生js中的window,把元素利用是jQuery的顶级对象,相当于原生js中的window,把元素利用 包装成jQuery对象,就可以调用jQuery的方法

jQuery对象和DOM对象

  1. dom对象:使用原生js获取
  2. jQuery对象:使用jQuery方式获取,本质:通过$把dom对象进行了包装,以伪数组的形式存储
var myDiv = document.querySelector('div'); //dom对象
$('div'); //jQuery对象

  1. dom对象只能使用原生js属性和方法,jQuery对象只能使用jQuery方法
myDiv.style.display = 'none'; //使用原生方法
$('div').hide(); //使用jQuery方法

  1. jQuery对象和dom对象的相互转换
    在这里插入图片描述

三、jQuery常用API使用

1. 选择器

$('选择器')

在这里插入图片描述
层级选择器 和css的写法一样
在这里插入图片描述
隐式迭代(重要)
遍历内部DOM元素(伪数组形式存储)的过程
也就是说,把匹配到的所有元素进行循环遍历,执行相应的方法,不用再像原生一样使用for循环

$("div").css("background", "pink"); //可以一次性修改

jQuery的筛选选择器
在这里插入图片描述
jQuery筛选方法(重点)
在这里插入图片描述
重点掌握:parent()、children()、find()、siblings()、eq()
补充:返回指定祖先元素:$(".four").parents(".one");

//选择ul中的第三个li
//法一:使用选择器的方法
$("ul li:eq(2)").css("color", "pink");
//法二:使用筛选方法(更推荐,方便传入变量)
$("ul li").eq(2).css("color", "blue");

案例:下拉菜单

    <script>
        $(function () {
            // 鼠标经过 对于每个li都隐式绑定了事件
            $(".nav>li").mouseover(function () {
                //$(this)表示当前元素
                //show()显示元素 hide()隐藏元素
                $(this).children("ul").show();
            })
            // 鼠标离开
            $(".nav>li").mouseout(function () {
                $(this).children("ul").hide();
            })
        })
    </script>

补充知识点:事件切换
$("div").hover(function(){}, function(){}); 前面是mouseover的回调,后面是mouseout的回调,写法更加简单
$("div").hover(function(){}); 只有一个函数时,mouseover和mouseout都是这个回调函数

案例:排他思想的应用
在这里插入图片描述

    <script>
        $(function () {
            //隐式迭代 所有的按钮都绑定了点击事件
            $("button").click(function () {
                //当前元素背景颜色变化
                $(this).css("background", "pink");
                //其余兄弟去掉背景颜色 (排他) 隐式迭代
                $(this).siblings("button").css("background", "");
            })
        })
    </script>

其他知识:
$(this).index();可以获得当前索引

2. 样式操作 css

在这里插入图片描述

    <script>
        $(function () {
            console.log($('div').css("width")); //200px
            $('div').css("width", "300px"); //或者$('div').css("width", 300);
            $('div').css({ //属性名和数字属性值可以不加引号(也可以加)
                width: 300,
                height: 300,
                // 驼峰命名法
                backgroundColor: "red"
            })
        })
    </script>

在这里插入图片描述
链式编程操作
$(this).addClass("current").siblings().removeClass("current");
$(".tab_con .item").eq(index).show().siblings().hide();

注意:原生js的className会覆盖原来的类名,但是addClass是增加,不会影响原来的类名。

3. 效果

在这里插入图片描述

显示隐藏

显示:show([speed], [easing], [fn])
隐藏:hide([speed], [easing], [fn])
切换:toggle([speed], [easing], [fn])
一般情况我们都不加参数,动画效果挺丑的
在这里插入图片描述

滑动

下拉滑动:slideDown([speed], [easing], [fn])
上拉滑动:slideUp([speed], [easing], [fn])
切换滑动:slideToggle([speed], [easing], [fn])
一般使用也不加参数

重点:如果添加了很多动画效果可能会出现动画队列的现象,因此我们往往先停止动画stop(),再写动画效果
例如:$(this).children("ul").stop().slideToggle();

淡入淡出

淡入:fadeIn([speed], [easing], [fn])
淡出:fadeOut([speed], [easing], [fn])
淡入淡出切换:fadeToggle([speed], [easing], [fn])
修改透明度:fadeTo(speed, opacity, [easing], [fn]) speed和opacity必须写,opacity取值为0-1之间

自定义动画

语法:animate(params, [speed], [easing], [fn])
params:想要修改的样式属性,以对象的形式传递,必须写,属性名可以不用带引号,复合属性采用驼峰命名法

例子:

    <script>
        $(function () {
            $("button").click(function () {
                $("div").animate({
                    left: 500,
                    top: 300,
                    opacity: .4,
                    width: 500
                }, 500);
            })
        })
    </script>

4. 属性操作

获取元素固有属性:$("div").prop("属性")
修改固有属性:$("div").prop("属性", "属性值")
获取元素自定义属性:$("div").attr("属性")
修改元素自定义属性:$("div").attr("属性", "属性值")

数据缓存data() 数据存放在元素的内存里面,不显示在dom中
设置:$("span").data("uname", "vivian");
获取:$("span").data("uname");

获取自定义属性的方法:

<span index=1 data-index=1></span>

index是自定义属性,data-index是H5自定义属性
可以通过$("span").attr("index")获取index属性
可以通过$("span").attr("data-index")(返回字符串1)、$("span").data("index")(返回数字1)获取data-index属性

其他知识点:
change事件,当表单状态发生变化时触发:$("input").change(function(){});
:checked 获得当前复选框被选中的:$("input:checked").length 输出个数

5. 文本属性值

获取元素内容:$("div").html();
修改元素内容:$("div").html("123");
获取元素文本内容:$("div").text();
修改元素文本内容:$("div").text("123");
获取表单值:$("input").val();
修改表单值:$("input").val("123");

6. 元素操作

隐式迭代是对同一类元素做了同样的操作,如果想给同一类元素做不同操作,就要用到遍历
隐式迭代:$("div").css("color", "red");

(1)遍历

语法一:$("div").each(function(index, domEle){}); 更适合用来遍历元素

$("div").each(function(index, domEle) {
	//index 为当前元素的索引
	//domEle是当前dom对象,要使用jquery方法 必须先转成jquery对象
	$(domEle).css("color", arr[index]); //给不同的div赋值不同的颜色
})

语法二:$.each(object, function(index, element){}); 更适合用来遍历数组、对象

$.each(arr, function(index, element){
	
})

(2)创建

var li = $("<li>新创建的li</li>");

(3)添加

$("ul").append(li); 在元素的内部添加,放到最后,父子关系
$("ul").prepend(li); 在元素的内部添加,放到最前,父子关系
$("ul").after(li); 在元素的外部添加,放到后面,兄弟关系
$("ul").before(li); 在元素的外部添加,放到前面,兄弟关系

(4)删除

$("ul").remove(); 移除自己
$("ul").empty(); 移除所有子节点
$("ul").html(""); 移除所有子节点

四、jQuery事件

1. jQuery事件注册

$("div").click(function(){});
还有事件:mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll

2. jQuery事件处理on/off

可以处理多个事件

$("div").on({
	click: function() {
		$(this).css("background", "purple");
	},
	mouseover: function() {
		$(this).css("background", "red");
	}
})



### 文末

技术是没有终点的,也是学不完的,最重要的是活着、不秃。

零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。

最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。

高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。

技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。

拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!


**开源分享:https://docs.qq.com/doc/DSmRnRGxvUkxTREhO**