jQuery 基础知识

1.jQuery的使用

要想使用 jQuery 的话,我们必须先要官网上下载(  http://jquery.com/  )3.7 到 4.0的开发版本就可以,下载到文件夹以后桌面都可以 ,然后拖动到代码编辑器根目录下即可

 

 在需要使用 jQuery 的页面引入 jquery 的核心 js 文件

<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>

2. DOM 对象 与 jQuery 包装集对象

DOM 对象

        通过 js 方式获取的元素对象( documnet )

JQuery 对象

        通过 jquery 方法获取的元素对象,返回的是 jquery 包装集

区别:

        获取 dom 对象时会返回 “  元素  ”  本身的标签及内容

        获取 jQuery 对象时会返回一个 包装集 对象

<!-- 
		Dom对象
			通过js方式获取的元素对象(document)
		Jquery对象
			通过jquery方法获取的元素对象,返回的是jquery包装集
	 -->
<!-- 引入jquery的核心js文件 (如果未引入jquery,则报错:$ is not defined)-->
<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	/*  Dom对象 */
	var divDom = document.getElementById("mydiv");
	console.log(divDom);
	var divsDom = document.getElementsByTagName("div");
	console.log(divsDom);
	// js获取不存在的元素
	var spanDom = document.getElementsByTagName("span");
	console.log(spanDom);
	var spanDom2 = document.getElementById("myspan");
	console.log(spanDom2);

	console.log("==========");


	/* Jquery对象 */
	// 通过id选择获取元素对象  $("#id属性值")
	var divJquery = $("#mydiv");
	console.log(divJquery);
	// jquery获取不存在的元素
	var spanJquery = $("#myspan")
	console.log(spanJquery);

	console.log("========");
	/* Dom对象 转 Jquery对象 */
	// Dom对象转为jQuery对象,只需要利用$()方法进行包装即可
	var divDomToJquery = $(divDom);
	console.log(divDomToJquery);

	/* Jquery对象 转 Dom对象 */
	// 获取包装集对象中指定下标的元素,将jquery对象转换成dom对象
	var divJqueryToDom = divJquery[0];
	console.log(divJqueryToDom);

</script>

3.基础选择器

基础选择器

id选择器        #id属性值        $(" #id属性值 ")  选择id为指定的元素对象(  如果有多个同名的id属性,则以第一个为标准 )

类选择器        .class属性值        $('' .class属性值 '')  选择clsss为指定值的元素对象

元素选择器        标签名/元素名        $(" 标签名/元素名 ")  选择所有指定标签的元素对象

通用选择器        *        $('' * '')        选择页面中所有的元素对象

组合选择器        选择器1 , 选择器2        $(''  选择器1,选择器2 '')  选择指定选择器选中的元素对象

<body>
		<div id="mydiv1" class="blue">元素选择器</div>
		<div id="mydiv1">id选择器1<span>span中的内容</span></div>
		<span class="blue">样式选择器</span>
</body>
<script type="text/javascript">
	 	// id选择器			#id属性值	
		var mydiv = $("#mydiv1");
		console.log(mydiv);
		
		// 类选择器			.class属性值	
		var clas = $(".blue");
		console.log(clas);
		
		// 元素选择器		标签名/元素名
		var spans = $("span");
		console.log(spans);
		
		// 通用选择器		*	
		var all = $("*");
		console.log(all);
		
		// 组合选择器		选择器1,选择器2,..
		var group = $("#mydiv1,div,.blue");
		console.log(group);
		
		
	 </script>

4.层次选择器

层次选择器:

        后代选择器

               格式: 父元素  指定元素( 空格隔开 )

                示例:$( ''  父元素   指定元素  '' )

                选择父元素的所有指定元素(  包含第一代、第二代等 ) 

         子代选择器

                格式:父元素 > 指定元素 (大于号隔开)

                示例:$('''  父元素 >  指定元素 '')

                选择父元素的所有第一代指定元素

        相邻选择器

                格式:元素 + 指定元素 (  加号隔开 )

                示例:$('''  元素 + 指定元素 '')

                选择元素的下一个指定元素( 只会查找下一个元素的 ,如果元素不存在,则获取不到)

        同辈选择器

                格式:元素 ~ 指定元素 (  波浪号隔开 )

                示例:$(''  元素 ~ 指定元素  '')

                选择元素下面的所有指定元素

        

<body>
	<div id="parent">层次择器
		<div id="child" class="testColor">父选择器
			<div class="gray">子选择器</div>
			<img src="http://www.baidu.com/img/bd_logo1.png" width="270" height="129" />
			<img src="http://www.baidu.com/img/bd_logo1.png" width="270" height="129" />
		</div>
		<p>p元素</p>
		<div>
			选择器2<div>选择器2中的div</div>
		</div>
	</div>
</body>
<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	// 后代选择器
	var hd = $("#parent div");
	console.log(hd);

	// 子代选择器
	var zd = $("#parent > div");
	console.log(zd);

	// 相邻选择器
	var xl = $("#child + div");
	console.log(xl);

	// 同辈选择器
	var imgs = $(".gray ~ img");
	console.log(imgs);

</script>

5.表单选择器

  表单选择器   :input      查找所有的input元素:$(":input");

                      注意:会匹配所有的input、textarea、select和button元素。

      文本框选择器    :text

      密码框选择器    :password

      单选按钮选择器 :radio

      多选按钮选择器 :checkbox

      提交按钮选择器 :sunmit

      图像按钮选择器 :image

      重置按钮选择器 :reset

      文件域选择器    :file

      按钮选择器   :button

<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		// 表单选择器		:input
		var inputs = $(":input");
		console.log(inputs);
		// 元素选择器
		var inputs2 = $("input");
		console.log(inputs2);

6.操作元素的属性

        操作元素的属性

                属性的分类:

                        固有属性:元素本身就有的属性(id、name、calss、style)

                        返回值是boolean的属性:checked、selected、disabled

                        自定义属性:用户自己定义的属性

                attr()和 prop()的区别

                        1.如果是固有属性,attr()和 prop()方法均可操作

                        2.如果是自定义属性,attr()可操作,prop()不可操作

                        3.如果是返回值是 boolean 类型的属性

                                如设置属性,attr()返回具体的值,prop()返回 true

                                未设置属性。attr()返回 undefined,prop()返回 false

               1. 获取属性

                        attr(‘’  属性名 ‘’)

                        prop(‘’  属性名 ‘’)

                2. 设置属性值

                        attr(‘’  属性名 ‘’,‘’  属性值 ‘’)

                        prop(‘’  属性名 ‘’,‘’  属性值 ‘’)

                3. 移除属性

                        removeAttr(‘’  属性名  ‘’)

        总结:如果属性的类型是 Boolean (checked、selected、disabled),则使用prop()方法,否则使用 attr ()方法

 <input type="checkbox" name="ch" checked="checked" id="aa" abc="aabbcc"/>	aa
		 <input type="checkbox" name="ch" id="bb" />	bb
	</body>
	<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		/* 获取属性 */
		// 固有属性
		var name = $("#aa").attr("name");
		console.log(name);
		var name2 = $("#aa").prop("name");
		console.log(name2);
		// 返回值是boolean的属性(元素设置了属性)
		var ck1 = $("#aa").attr("checked"); // checked
		var ck2 = $("#aa").prop("checked"); // true
		console.log(ck1);
		console.log(ck2);
		// 返回值是boolean的属性(元素未设置属性)
		var ck3 = $("#bb").attr("checked"); // undefined
		var ck4 = $("#bb").prop("checked"); // false
		console.log(ck3);
		console.log(ck4);
		// 自定义属性
		var abc1 = $("#aa").attr("abc"); // aabbcc
		var abc2 = $("#aa").prop("abc"); // undefined
		console.log(abc1);
		console.log(abc2);
		
		/* 设置属性 */
		// 固有属性
		$("#aa").attr("value","1");
		$("#bb").prop("value","2");
		
		// 返回值是boolean的属性
		$("#bb").attr("checked","checked");
		$("#bb").prop("checked",false);
		
		// 自定义属性
		$("#aa").attr("uname","admin");
		$("#aa").prop("uage",18);
		
		/* 移除属性 */
		$("#aa").removeAttr("checked")
		
		
	</script>

7.操作元素的样式

        attr(‘’ class ‘’)        获取元素的样式名

        attr(‘’  calss  ‘’,样式名)        设置元素样式(设置元素样式。原本的样式会被删除)

        addclass(‘’ 样式名 ‘’)       添加样式( 在原来的基础上添加样式,原本的样式会保留,如果出现相同的样式,则以样式中后定义的为准)

        css()        添加具体的样式( 添加行内样式 )

                css(‘’ 具体样式名 ‘’,‘’  样式值  ‘’)设置单个样式

                css({ “  具体样式  ”:‘’  样式值 ’‘,“  具体样式  ”:‘’  样式值 ’‘ })设置多个样式值

        removeClass(’‘  样式名 '’) 移除样式

<h3>css()方法设置元素样式</h3>
	<div id="conBlue" class="blue larger">天蓝色</div>
	<div id="conRed">大红色</div>
	<div id="remove" class="blue larger">天蓝色</div>
</body>
<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	// attr("class") 	获取元素的样式名
	var cla = $("#conBlue").attr("class");
	console.log(cla);

	// attr("class","样式名")	设置元素的样式
	$("#conBlue").attr("class", "green");

	// addClass("样式名")	添加样式
	$("#conBlue").addClass("larger");
	$("#conBlue").addClass("pink");

	// css()	添加具体的样式(添加行内样式)
	$("#conRed").css("font-size", "40px");
	$("#conRed").css({ "font-family": "楷体", "color": "green" });

	// removeClass("样式名")		移除样式
	$("#remove").removeClass("larger");

</script>

8.操作元素的内容

        操作元素的内容

                html()        获取元素的内容,包含 html 标签(非表单元素)

                html(‘’ 内容 ‘’)        设置元素的内容,包含 html 标签(非表单元素)

                text()        获取元素的纯文本内容,不识别html标签(非表单元素)

                text(‘’ 内容 ‘’)        设置元素的纯文本内容,不识别html标签(非表单元素)

                val()        获取元素的值(表单元素)

                val()        设置元素的值(表单元素)

        表单元素:

                 文本框text、密码框password、单选框radio、复选框checkbox、隐藏域hidden、文本域textarea、下拉框select

    非表单元素:

              div、span、h1~h6、table、tr、td、li、p等

script type="text/javascript">
	 	// html("内容")		设置元素的内容,包含html标签(非表单元素)
		$("#html").html("<h2>上海</h2>");
		$("#html2").html("上海");
		// html()			获取元素的内容,包含html标签(非表单元素)
		var html = $("#html").html();
		var html2 = $("#html2").html();
		console.log(html);
		console.log(html2);
		
		
		// text("内容")	 设置元素的纯文本内容,不识别HTML标签(非表单元素)
		//$("#text").text("北京");
		//$("#text2").text("<h2>北京</h2>");
		// text()	获取元素的纯文本内容,不识别HTML标签(非表单元素)
		var txt = $("#text").text();
		var txt2 = $("#text2").text();
		console.log(txt);
		console.log(txt2);
		
		
		// val()			获取元素的值(表单元素)
		var val = $("#op").val();
		console.log(val);
		// 	val("值")		设置元素的值(表单元素)
		$("#op").val("今天天气不错");

9.创建元素和添加元素

创建元素和添加元素:创建元素  $(''  内容 '')

添加元素:

1. 前追加子元素

          指定元素.prepend(内容)      在指定元素内部的最前面追加内容,内容可以是字符串、html元素或jquery对象。

          $(内容).prependTo(指定元素);    把内容追加到指定元素内部的最前面,内容可以是字符串、html元素或jquery对象。

2.后追加子元素

        指定元素.append(内容)     在指定元素内部的最后面追加内容,内容可以是字符串、html 元素或jquery对象

        $(内容).appendTo(指定元素)    把内容追加到指定元素内部的最后面,内容可以是字符串、html 或 jquery对象

3.前追加同级元素

before()  指定元素的前面追加内容

3.后追加同级元素

after()     指定元素的后面追加内容

        注:在添加元素时,如果元素本身不存在(新建的元素),此时会将元素追加到指定位置

                如果元素本身存在(已有的元素),会将原来的元素直接剪切设置到指定位置

script type="text/javascript">
	 	// 创建元素
		var p = "<p>这是一个p标签</p>";
		console.log(p);
		console.log($(p));
		
		/* 添加元素 */
		// 创建元素
		var span = "<span>小奶狗</span>";
		// 得到指定元素,并在元素的内部最前面追加内容
		$(".green").prepend(span);
		var span2 = "<span>小狼狗</span>";
		$(span2).prependTo($(".green"));
		
		var span3 = "<span>小奶狗1</span>";
		var span4 = "<span>小奶狗2</span>";
		$(".green").append(span3);
		$(span4).appendTo($(".green"));
		
		// 将已存在内容追加到指定元素中
		$(".green").append($(".red"));
		
		
		/* 同级追加 */
		var sp1 = "<span class='pink'>女神</span>";
		var sp2 = "<span class='gray'>歌手</span>";
		
		$(".blue").before(sp1);
		$(".blue").after(sp2);
		
	 </script>

10.删除元素

        remove()

                删除元素及其对应的子元素,标签和内容一起删除

                指定元素.remove()

        empty

                清空元素内容,保留标签

                指定元素.empty()

<script type="text/javascript">
	 	// 删除元素
		$(".green").remove();
		// 清空元素
		$(".blue").empty();
		
	 </script>

11.遍历元素

        each()

                $( selector ).each(function(index,element)):遍历元素

                参数 function 为遍历 时的回调函数

                index为遍历元素的序列号,从 0 开始

                element是当前元素,此时是dom元素

<body>
		<h3>遍历元素 each()</h3>
		<span class="green">jquery</span>
		<span class="green">javase</span>
		<span class="green">http协议</span>
		<span class="green">servlet</span>
	</body>
<script type="text/javascript">
	 	// 获取指定元素 并遍历
		$(".green").each(function(index,element){
			console.log(index);
			console.log(element);
			console.log(this);
			console.log($(this));
		});

12.ready加载事件

ready加载事件

        预加载事件

        当页面结构执行加载完毕是后执行

        类似于 js 中 load 事件

        ready 事件可以写多个

        语法:

                $(document).ready(function(){

})

        简写:

                $(function(){

})

	<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			
			$(function(){
				console.log("ready加载事件...");
			});
			$(document).ready(function(){
				// 获取元素
				console.log($("#p1"));
			});
			

 13.绑定事件

      bind绑定事件

        为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。

        语法:

          $(selector).bind( eventType [, eventData], handler(eventObject));

        ​   eventType :是一个字符串类型的事件类型,就是你所需要绑定的事件。

            [, eventData]:传递的参数,格式:{名:值,名2:值2}

        ​   handler(eventObject):该事件触发执行的函数

        绑定单个事件

          bind绑定

            $("元素").bind("事件类型",fucntion(){

            });

          直接绑定

            $("元素").事件名(function(){

            });

        绑定多个事件

          bind绑定

            1. 同时为多个事件绑定同一个函数

            指定元素.bind("事件类型1 事件类型1 ..",function(){

            });

            2. 为元素绑定多个事件,并设置对应的函数

            指定元素.bind("事件类型",function(){

            }).bind("事件类型",function(){

            });

            3. 为元素绑定多个事件,并设置对应的函数

            指定元素.bind({

              "事件类型":function(){

              },

              "事件类型":function(){

              }

            });

          直接绑定

            指定元素.事件名(function(){

            }).事件名(function(){

              });

<body>
	<h3>bind()方简单的绑定事件</h3>
	<!-- style="cursor:pointer" 设置鼠标图标 -->
	<div id="test" style="cursor:pointer">点击查看名言</div>
	<input id="btntest" type="button" value="点击就不可用了" />
	<hr>
	<button type="button" id="btn1">按钮1</button>
	<button type="button" id="btn2">按钮2</button>
	<button type="button" id="btn3">按钮3</button>
	<button type="button" id="btn4">按钮4</button>
</body>
<script src="../js/jquery-3.7.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	/*
		 1.确定为哪些元素绑定事件
			获取元素
		 2.绑定什么事件(事件类型)
			第一个参数:事件的类型
		 3.相应事件触发的,执行的操作
			第二个参数:函数
	 * */
	/* 绑定单个事件 */
	$("#test").bind("click", function () {
		console.log("世上无难事,只怕有心人");
	});
	// 原生js绑定事件
	/* document.getElementById("test").onclick = function(){
		console.log("test...");
	} */
	// 直接绑定
	$("#btntest").click(function () {
		// 禁用按钮
		console.log(this);
		$(this).prop("disabled", true);
	});

	/* 绑定多个事件 */
	// 1. 同时为多个事件绑定同一个函数
	$("#btn1").bind("click mouseout", function () {
		console.log("按钮1...");
	});

	// 2. 为元素绑定多个事件,并设置对应的函数
	$("#btn2").bind("click", function () {
		console.log("按钮2被点击了...");
	}).bind("mouseout", function () {
		console.log("按钮2移开了...");
	});

	// 3. 为元素绑定多个事件,并设置对应的函数
	$("#btn3").bind({
		"click": function () {
			console.log("按钮3被点击了...");
		},
		"mouseout": function () {
			console.log("按钮3移开了...");
		}
	});

	// 直接绑定
	$("#btn4").click(function () {
		console.log("按钮4被点击了...");
	}).mouseout(function () {
		console.log("按钮4移开了...");
	});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值