JQuery小结

本文详细介绍了JQuery在前端开发中的基本操作,包括DOM对象与JQuery对象的转换、选择器的使用、属性与样式的操作以及事件绑定。内容涵盖了选择元素、设置属性、操作样式、内容获取与设置以及事件监听等多个方面,是学习和理解JQuery的实用指南。

  Jquery是流行已久的前端开发中必须掌握的框架(程序库)。

  在前端开发中,常见操作无非就是选择对象和操作对象,JQuery提供了相当便利的语法。

  1、dom对象、JQuery对象

        dom对象:通过JavaScript获取的对象,无返回null。
        JQuery对象:通过JQuery获取的对象,无则返回空。
  2、dom对象和JQuery对象的转换

  dom对象转JQuery对象

		var checkboxArray=document.getElementsByName("motto");//dom对象
		// var jqueryMotto=jQuery(checkboxArray);//转换为JQuery对象

  JQuery对象转dom对象

		var jqueryMotto=$(checkboxArray);JQuery对象
		//⑴、将JQuery对象转换为dom对象
		var checkbox000=jqueryMotto[0];
		//⑵、通过遍历将JQuery对象转换为dom对象
		$(jqueryMotto).each(function(){
			if(this.id=='demo1'){ this.checked="checked"; }
		});
		//⑶、通过for循环将JQuery对象转换为dom对象
		for(var i=0;i<jqueryMotto.length;i++){
			if(i==3){ jqueryMotto[i].checked="checked"; }
		}

  3、选择

		//⑴基础选择
		$("#demo4").prop("checked",true);//通过id选择,如果有多个同名ID则选择第一个
		$(".rowTitleColorSet").css("color","#d70008");//通过类名进行选择
		$("span").css("color","#cccccc");//通过标签进行选择
		$("input[type=radio]")[0].checked=true;//通过元素名进行选择
		console.log( $(":radio,:checkbox,#radio5A") ) ;//组合选择(共16个),多的不重复累加,相当于交集
		//⑵层次选择
		console.log($("#txl div"));//输出#txl下的所有div(5个)
		console.log($("#txl >div"));//输出#txl下的所有div子元素(3个)
		console.log($("#title ~div"));//输出#title的同辈div元素(2个)
		console.log($("#PSP +div"));//输出#PSP的相邻div元素(1个),注意:必须相邻而且不能隔着其他元素
		//⑶表单选择
		$(":radio")[2].checked=true;//通过表单进行选择,元素可以有:input、:text、:checkbox、:radio、:password、:submit、:image、:button、:file(文件域)、reset(重置)

  4、操作

		//⑴获取属性
		console.log($("input[type='checkbox']")[1].checked);//输出checked属性
		var checkboxList=$("input[type='checkbox']");
		checkboxList.each(function(index,el){
			console.log( $(el).prop('checked') );//输出checked属性
			console.log( $(el).attr('id') );//输出id属性
		});		
		//⑵设置属性
		//固有的属性使用attr和prop都可以
		//自定义属性使用attr
		//true和false的属性使用prop(返回true和false)
		$("#demo4").prop("checked",false);//设置属性
		$("#demo2").attr("data","123");//设置自定义属性
		console.log($("#demo2").attr("data"));//输出自定义属性		
		//⑶获取和设置样式
		console.log( $("#student5").attr("style") ) ;//输出style样式
		$("#student5").css("background","#ccc");//设置属性
		$("#student5").css("font-size","18px");//设置属性
		$("#student1").css( {"background":"#999","font-size":"15px","font-family":"楷体","color":"#d70008"} );//设置属性		
		$("#student3").addClass("focusRowColorSet");//增加样式名称(原来的样式仍然存在)
		$("#focusID").attr("class","focusRowColorSet");//设置行的属性(替换掉原来的)
		$("#student3").removeClass("focusRowColorSet");//去除样式
		//⑷设置和获取内容
		console.log($("#focusID").html());//输出(非表单)元素的html内容
		console.log($("#xm").html());//输出(非表单)元素的html内容		
		$("#xm").html("<div style='color:#123456'>姓名</div>");//设置		
		console.log($("#xb").text());//输出(非表单)元素的text内容		
		$("#xb").text("<h1>性别</h1>");//设置
		console.log($("#student2").val()) ;//获取表单域的值
		$("#student2").val("小小宋");//设置表单域的值

  5、事件

        语法1:页面元素.bind("事件名1 事件名2 事件名3",function(){}),为一个页面元素绑定同一个函数
        语法2:页面元素.bind("事件名1,function(){}).bind("事件名2,function(){}),为一个页面元素绑定多个事件及函数,链式写法
        语法3:页面元素.bind( {"事件名1:function(){}),"事件名2":function(){},"事件名3":function(){} }),为一个页面元素绑定多个事件及函数

		$("#demo2").bind("click",function(){
			console.log("点击了demo2");
		});//绑定了点击事件:
		// document.getElementById("demo2").onclick=function(){
		// 	console.log("点选了demo2");
		// }
		$("#demo3").click(function(){
			console.log("点击了demo3");
		});//绑定了点击事件:
		
		$("#student4").bind({
			"click":function(){
				console.log("点击student4");
			},
			"mouseout":function(){
				console.log("移出student4");
			}
		})

  练习:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>JQuery使用小结</title>
		<style>
			.table tr{
				line-height:200%;
				text-align:center;
			}        
			.table td{
				width: 100px;
				text-align:center;
			}        
			.rowTitleColorSet{background-color: #818080;color: rgb(232, 232, 232);text-align: center;}
			.evenRowColorSet{background-color: #efefef;color: rgb(8, 8, 8);text-align: center}
			.oddRowColorSet{background-color: #f8f8f8;color: rgb(128, 128, 128);text-align: center}
			.focusRowColorSet{background-color: #999;color:#d70008;text-align: center}
		</style>		
	</head>
	<script type="text/javascript" src="jquery-3.6.0.min.js"></script>

	<body>
		<div id="txl">
				<div id="title"><h3>初二(5)班通讯录</h1></div>
				<div>
					<div id="PSP"><h5>HaoR制作</h5></div>
					<div><h5>JQuery小结</h5></div>				
				</div>
				<div><h5>2022年5月16日</h5></div>				
		</div>
		<div class="layui-form">
		  <table class="table">
			<thead>
				    <tr class="rowTitleColorSet">
						<th>学号</th>
						<th><div id="xm"><span>姓名</span></div></th>
						<th><div id="xb"><span>性别</span></div></th>
						<th><input type="checkbox" name="motto" id="demo0"/>选择</th>
					</tr> 
			</thead>
			<tbody>
			  <tr class="oddRowColorSet">
				<td>101</td>
				<td><input type="text" value="小华" id="student1"/></td>
				<td><div><input type="radio" name="radio1" id="radio1A" value="男" checked=true>男</input>  <input type="radio" name="radio1" id="radio1B" value="女">女</input></div></td>
				<td><input  type="checkbox" name="motto" id="demo1"/></td>
			  </tr>
			  <tr class="evenRowColorSet">
				<td>102</td>
				<td><input type="text" value="小宋" id="student2"/></td>
				<td><div><input type="radio" name="radio2" id="radio2A" value="男">男</input>  <input type="radio" name="radio2" id="radio2B" value="女" checked=true>女</input></div></td>
				<td><input  type="checkbox" name="motto" id="demo2"/></td>
			  </tr>
			  <tr class="oddRowColorSet">
				<td>103</td>
				<td><input type="text" value="小丽" id="student3"/></td>
				<td><div><input type="radio" name="radio3" id="radio3A" value="男">男</input>  <input type="radio" name="radio3" id="radio3B" value="女" checked=true>女</input></div></td>
				<td><input  type="checkbox" name="motto" id="demo3"/></td>
			  </tr>
			  <tr class="evenRowColorSet" id="focusID">
				<td>104</td>
				<td><input type="text" value="小明" id="student4"/></td>
				<td><div><input type="radio" name="radio4" id="radio4A" value="男" checked=true>男</input>  <input type="radio" name="radio4" id="radio4B" value="女">女</input></div></td>
				<td><input  type="checkbox" name="motto" id="demo4"/></td>
			  </tr>
			  <tr class="oddRowColorSet">
				<td>105</td>
				<td><input type="text" value="小凯" id="student5" style="font-size:14px;color:green"/></td>
				<td><div><input type="radio" name="radio5" id="radio5A" value="男" checked=true>男</input>  <input type="radio" name="radio5" id="radio5B" value="女">女</input></div></td>
				<td><input  type="checkbox" name="motto" id="demo4"/></td>
			  </tr>			  
			</tbody>
		  </table>
		</div>
		
	<script>
		//1、dom对象、JQuery对象
		//dom对象:通过JavaScript获取的对象,无返回null
		//JQuery对象:通过JQuery获取的对象,无则返回空
		var checkbox0=document.getElementById("demo0");//dom对象
		var checkboxArray=document.getElementsByName("motto");//dom对象
		// var jqueryMotto=jQuery(checkboxArray);//转换为JQuery对象
		var jqueryMotto=$(checkboxArray);//转换为JQuery对象
		//⑴、将JQuery对象转换为dom对象
		var checkbox000=jqueryMotto[0];
		//⑵、通过遍历将JQuery对象转换为dom对象
		$(jqueryMotto).each(function(){
			if(this.id=='demo1'){ this.checked="checked"; }
		});
		//⑶、通过for循环将JQuery对象转换为dom对象
		for(var i=0;i<jqueryMotto.length;i++){
			if(i==3){ jqueryMotto[i].checked="checked"; }
		}
		//2、选择
		//⑴基础选择
		$("#demo4").prop("checked",true);//通过id选择,如果有多个同名ID则选择第一个
		$(".rowTitleColorSet").css("color","#d70008");//通过类名进行选择
		$("span").css("color","#cccccc");//通过标签进行选择
		$("input[type=radio]")[0].checked=true;//通过元素名进行选择
		console.log( $(":radio,:checkbox,#radio5A") ) ;//组合选择(共16个),多的不重复累加,相当于交集
		//⑵层次选择
		console.log($("#txl div"));//输出#txl下的所有div(5个)
		console.log($("#txl >div"));//输出#txl下的所有div子元素(3个)
		console.log($("#title ~div"));//输出#title的同辈div元素(2个)
		console.log($("#PSP +div"));//输出#PSP的相邻div元素(1个),注意:必须相邻而且不能隔着其他元素
		//⑶表单选择
		$(":radio")[2].checked=true;//通过表单进行选择,元素可以有:input、:text、:checkbox、:radio、:password、:submit、:image、:button、:file(文件域)、reset(重置)
		//3、操作
		//⑴获取属性
		console.log($("input[type='checkbox']")[1].checked);//输出checked属性
		var checkboxList=$("input[type='checkbox']");
		checkboxList.each(function(index,el){
			console.log( $(el).prop('checked') );//输出checked属性
			console.log( $(el).attr('id') );//输出id属性
		});		
		//⑵设置属性
		//固有的属性使用attr和prop都可以
		//自定义属性使用attr
		//true和false的属性使用prop(返回true和false)
		$("#demo4").prop("checked",false);//设置属性
		$("#demo2").attr("data","123");//设置自定义属性
		console.log($("#demo2").attr("data"));//输出自定义属性		
		//⑶获取和设置样式
		console.log( $("#student5").attr("style") ) ;//输出style样式
		$("#student5").css("background","#ccc");//设置属性
		$("#student5").css("font-size","18px");//设置属性
		$("#student1").css( {"background":"#999","font-size":"15px","font-family":"楷体","color":"#d70008"} );//设置属性		
		$("#student3").addClass("focusRowColorSet");//增加样式名称(原来的样式仍然存在)
		$("#focusID").attr("class","focusRowColorSet");//设置行的属性(替换掉原来的)
		$("#student3").removeClass("focusRowColorSet");//去除样式
		//⑷设置和获取内容
		console.log($("#focusID").html());//输出(非表单)元素的html内容
		console.log($("#xm").html());//输出(非表单)元素的html内容		
		$("#xm").html("<div style='color:#123456'>姓名</div>");//设置		
		console.log($("#xb").text());//输出(非表单)元素的text内容		
		$("#xb").text("<h1>性别</h1>");//设置
		console.log($("#student2").val()) ;//获取表单域的值
		$("#student2").val("小小宋");//设置表单域的值
		//事件
		//页面元素.bind("事件名1 事件名2 事件名3",function(){}),为一个页面元素绑定同一个函数
		//页面元素.bind("事件名1,function(){}).bind("事件名2,function(){}),为一个页面元素绑定多个事件及函数,链式写法
		//页面元素.bind( {"事件名1:function(){}),"事件名2":function(){},"事件名3":function(){} }),为一个页面元素绑定多个事件及函数
		$("#demo2").bind("click",function(){
			console.log("点击了demo2");
		});//绑定了点击事件:
		// document.getElementById("demo2").onclick=function(){
		// 	console.log("点选了demo2");
		// }
		$("#demo3").click(function(){
			console.log("点击了demo3");
		});//绑定了点击事件:
		
		$("#student4").bind({
			"click":function(){
				console.log("点击student4");
			},
			"mouseout":function(){
				console.log("移出student4");
			}
		})
	</script>
	</body>
</html>

  结果图:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值