95_JavaWeb_Jquery1_对象_核心函数_选择器_过滤器

举报
alexsully 发表于 2021/07/13 19:46:03 2021/07/13
【摘要】 jQuery对象,选择器-基本-层级- 基本过滤/内容过滤器 属性过滤器 表单过滤器

jQuery JavaScript 和查询(Query),它就是辅助 JavaScript 开发的类库

 1  引入Jquery库 <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
 2  $ 是 jQuery 的核心函数,能完成 jQuery 的很多功
 
1) 传入参数为 [ 函数 ] 时: 表示页面加载完成之后。相当于 window.onload = function(){}
2) 传入参数为 [ HTML 字符串 ] 时:会对我们创建这个 html 标签对象
3) 传入参数为 [ 选择器字符串 ] 时:
    $(“#id 属性值”); id 选择器,根据 id 查询标签对象
    $(“标签名”); 标签名选择器,根据指定的标签名查询标签对象
    $(“.class 属性值”); 类型选择器,可以根据 class 属性查询标签对象
4) 传入参数为 [ DOM 对象 ] 时:会把这个 dom 对象转换为 jQuery 对象

 jquery 使用$()代替window.onload

<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">

	// 1 原始方法
	window.onclick = function (){
		var btnolder = document.getElementById("btnId1");
		btnolder.onclick = function (){
			alert("hello_old")
		}
	}

	// 2 jquery 使用$()代替window.onload

	$(function () { // 表示页面加载完成 之后,相当 window.onload = function () {}
		var $btnObj2 = $("#btnId2"); // 表示按id查询标签对象
		$btnObj2.click(function () { // 绑定单击事件
			alert("hello_new_jQuery 的单击事件");
		});
	});

</script>

核心函数 &  Jquery本质

<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">

	//核心函数的4个作用
	//1 传入参数为[函数]时:在文档加载完成后执行这个函数
	//2 传入参数为[HTML字符串]时:根据这个字符串创建元素节点对象

    $(function (){  //1 $(function (){} 相当 window.onload = function () {}
        $("      <div><span>div-span1 </span></div>\n" +
            "    <div><span>div-span2 </span></div>").appendTo("body");  //2 $("html")
    } )


	//3 传入参数为[选择器字符串]时:根据这个字符串查找元素节点对象
	//4 传入参数为[DOM对象]时:将DOM对象包装为jQuery对象返回

    $(function (){
        var btnObj = document.getElementById("btn01");

        alert(btnObj) //[object HTMLButtonElement]
        alert($(btnObj)) // jQuery对象 [object Object]

        alert( $( "#btn01")[0]) // jquery对象本质是dom对象的集合(数组)  [object HTMLButtonElement]
        alert($( "#btn01").length) 1
    })

jQuery 对象和 dom 对象
jQuery 对象的本质 //alert($); - 本质是个函数 function(selector, context){} :
jQuery对象是dom对象的数组 + jQuery 提供的一系列功能函数 

 Dom 对象 (DOM对象Alert出来的效果是:[object HTML 标签名 Element])
1.通过 getElementById() ; getElementsByName(); getElementsByTagName()查询出来的标签对象是 Dom 对象
2.通过 createElement() 方法创建的对象,是Dom对象 ; 

jQuery 对象 (Alert 出来的效果是:[object Object]) 
1.通过 JQuery提供的API创建的对象,是JQuery 对象
2.通过 JQuery包装的Dom对象,也是 JQuery 对象
3.通过 JQuery提供的 API 查询到的对象,是 JQuery 对象

jQuery 对象不能使用 DOM 对象的属性和方法
DOM 对象也不能使用 jQuery对象的属性和方法

<script type="text/javascript">

	$(function(){
		// var arr = [12,"abc",true];
		var $btns = $("button");

		//$btns = init(4) [button#dom2dom, button#dom2jQuery, button#jQuery2jQuery, button#jQuery2dom, prevObject: init(1), context: document, selector:
		for (var i = 0; i < $btns.length; i++){
			alert($btns[i]);
		}

		// document.getElementById("testDiv").innerHTML = "这是dom对象的属性InnerHTML";
		$("#testDiv").innerHTML = "这是dom对象的属性InnerHTML";

		$("#testDiv").click(function () {
			alert("click()是jQuery对象的方法");
		});

		// document.getElementById("testDiv").click(function () {
		// 	alert("click()是jQuery对象的方法");
		// });

		// alert( $(document.getElementById("testDiv"))[0] );

		alert( $("button:first") );
	});

</script>
</head>
<body>
	<div id="testDiv">Alex is Very Good!</div>
	<button id="dom2dom">使用DOM对象调用DOM方法</button>
	<button id="dom2jQuery">使用DOM对象调用jQuery方法</button>
	<button id="jQuery2jQuery">使用jQuery对象调用jQuery方法</button>
	<button id="jQuery2dom">使用jQuery对象调用DOM方法</button>
</body>


选择器
1 基本选择器

 #ID 选择器:    根据 id 查找标签对象
 .class 选择器: 根据 class 查找标签对象
 element 选择器:根据标签名查找标签对象
 * 选择器:      表示任意/所有的元素
 selector1,selector2 组合选择器: 合并选择器1,选择器2 的结果集返回 ($("span,#two")) 
		<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			
				$(function () {
					//1.选择 id 为 one 的元素 "background-color","#bbffaa"
					$("#btn1").click(function () {
						// css() 方法 可以设置和获取样式
						$("#one").css("background-color","#bbffaa");
					});

					//2.选择 class 为 mini 的所有元素
					$("#btn2").click(function () {
						$(".mini").css("background-color","#bbffaa");
					});

					//3.选择 元素名是 div 的所有元素
					$("#btn3").click(function () {
						$("div").css("background-color","#bbffaa");
					});

					//4.选择所有的元素
					$("#btn4").click(function () {
						$("*").css("background-color","#bbffaa");
					});

					//5.选择所有的 span 元素和id为two的元素
					$("#btn5").click(function () {
						$("span,#two").css("background-color","#bbffaa");
					});
				});
		</script>

2 层级选择器 

ancestor descendant 后代选择器 :在给定的祖先元素下匹配所有的后代元素
parent > child 子元素选择器:在给定的父元素下匹配所有的子元素
prev + next 相邻元素选择器:匹配所有紧接在 prev 元素后的 next 元素
prev ~ sibings 之后的兄弟 平级元素选择器:匹配 prev 元素之后的所有 siblings 元素
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				//1.选择 body 内的所有 div 元素
				$("#btn1").click(function(){
					$("body div").css("background", "#bbffaa");
				});

				//2.在 body 内, 选择div子元素  
				$("#btn2").click(function(){
					$("body > div").css("background", "#bbffaa");
				});

				//3.选择 id 为 one 的下一个 div 元素 
				$("#btn3").click(function(){
					$("#one+div").css("background", "#bbffaa");
				});

				//4.选择 id 为 two 的元素后面的所有 div 兄弟元素
				$("#btn4").click(function(){
					$("#two~div").css("background", "#bbffaa");
				});
			});
		</script>

3 过滤选择器- 基本过滤器

:first 获取第一个元素
:last 获取最后个元素
:not(selector) 去除所有与给定选择器匹配的元素
:even 匹配所有索引值为偶数的元素,从 0 开始计数
:odd 匹配所有索引值为奇数的元素,从 0 开始计数
:eq(index) 匹配一个给定索引值的元素
:gt(index) 匹配所有大于给定索引值的元素
:lt(index) 匹配所有小于给定索引值的元素
:header 匹配如 h1, h2, h3 之类的标题元素
:animated 匹配所有正在执行动画效果的元素
<script type="text/javascript">
			$(document).ready(function(){   //简写:$(function () {}
				function anmateIt(){
					$("#mover").slideToggle("slow", anmateIt);
				}
				anmateIt();
			});
			
			$(document).ready(function(){
				//1.选择第一个 div 元素  
				$("#btn1").click(function(){
					$("div:first").css("background", "#bbffaa");
				});

				//2.选择最后一个 div 元素
				$("#btn2").click(function(){
					$("div:last").css("background", "#bbffaa");
				});

				//3.选择class不为 one 的所有 div 元素
				$("#btn3").click(function(){
					$("div:not(.one)").css("background", "#bbffaa");
				});

				//4.选择索引值为偶数的 div 元素
				$("#btn4").click(function(){
					$("div:even").css("background", "#bbffaa");
				});

				//5.选择索引值为奇数的 div 元素
				$("#btn5").click(function(){
					$("div:odd").css("background", "#bbffaa");
				});

				//6.选择索引值为大于 3 的 div 元素
				$("#btn6").click(function(){
					$("div:gt(3)").css("background", "#bbffaa");
				});

				//7.选择索引值为等于 3 的 div 元素
				$("#btn7").click(function(){
					$("div:eq(3)").css("background", "#bbffaa");
				});

				//8.选择索引值为小于 3 的 div 元素
				$("#btn8").click(function(){
					$("div:lt(3)").css("background", "#bbffaa");
				});

				//9.选择所有的标题元素
				$("#btn9").click(function(){
					$(":header").css("background", "#bbffaa");
				});

				//10.选择当前正在执行动画的所有元素
				$("#btn10").click(function(){
					$(":animated").css("background", "#bbffaa");
				});
				//11.选择没有执行动画的最后一个div
				$("#btn11").click(function(){
					$("div:not(:animated):last").css("background", "#bbffaa");
				});
			});
		</script>

4 内容过滤器-属性过滤选择器:

:contains(text) 匹配包含给定文本的元素
:empty 匹配所有不包含子元素或者文本的空元素
:parent 匹配含有子元素或者文本的元素
:has(selector) 匹配含有选择器所匹配的元素的元素
[attribute] 匹配包含给定属性的元素。
[attribute=value] 匹配给定的属性是某个特定值的元素
[attribute!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素
[attribute^=value] 匹配给定的属性是以某些值开始的元素
[attribute$=value] 匹配给定的属性是以某些值结尾的元素
[attribute*=value] 匹配给定的属性是以包含某些值的元素
[attrSel1][attrSel2][attrSelN] 复合属性选择器,需要同时满足多个条件时使用
$(function() {
		//1.选取含有 属性title 的div元素
		$("#btn1").click(function() {
			$("div[title]").css("background", "#bbffaa");
		});
		//2.选取 属性title值等于'test'的div元素
		$("#btn2").click(function() {
			$("div[title='test']").css("background", "#bbffaa");
		});
		//3.选取 属性title值不等于'test'的div元素(*没有属性title的也将被选中)
		$("#btn3").click(function() {
			$("div[title!='test']").css("background", "#bbffaa");
		});
		//4.选取 属性title值 以'te'开始 的div元素
		$("#btn4").click(function() {
			$("div[title^='te']").css("background", "#bbffaa");
		});
		//5.选取 属性title值 以'est'结束 的div元素
		$("#btn5").click(function() {
			$("div[title$='est']").css("background", "#bbffaa");
		});
		//6.选取 属性title值 含有'es'的div元素
		$("#btn6").click(function() {
			$("div[title*='es']").css("background", "#bbffaa");
		});
		
		//7.首先选取有属性id的div元素,然后在结果中选取属性title值 含有'es'的 div 元素
		$("#btn7").click(function() {
			$("div[id][title*='es']").css("background", "#bbffaa");
		});
		//8.选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素
		$("#btn8").click(function() {
			$("div[title][title!='test']").css("background", "#bbffaa");
		});
	});


5 表单过滤器

:input 匹配所有input, textarea, select 和 button 元素 (使用频率较低)
:text 匹配所有文本输入框
:password 匹配所有的密码输入框
:radio 匹配所有的单选框
:checkbox 匹配所有的复选框
:submit 匹配所有提交按钮
:image 匹配所有 img 标签
:reset 匹配所有重置按钮
:button 匹配所有 input type=button <button>按钮
:file 匹配所有 input type=file 文件上传
:hidden 匹配所有不可见元素 display:none 或 input type=hidde

6 表单对象属性过滤器

:enabled 匹配所有可用元素
:disabled 匹配所有不可用元素
:checked 匹配所有选中的单选,复选,和下拉列表中选中的 option 标签对象
:selected 匹配所有选中的 option


	//1.对表单内 可用input 赋值操作
				$("#btn1").click(function(){
					// val()可以操作表单项的value属性值
					// 它可以设置和获取, 传入参数就是赋值,空参就是获取
					$(":text:enabled").val("我是万能的程序员");
				});
				//2.对表单内 不可用input 赋值操作
				$("#btn2").click(function(){
					$(":text:disabled").val("管你可用不可用,反正我是万能的程序员");
				});
				//3.获取多选框选中的个数  使用size()方法获取选取到的元素集合的元素个数
				$("#btn3").click(function(){
					alert( $(":checkbox:checked").length );

				});
				//4.获取多选框,每个选中的value值
				$("#btn4").click(function(){
					// 获取全部选中的复选框标签对象
					var $checkboies = $(":checkbox:checked");
					// 老式遍历
					// for (var i = 0; i < $checkboies.length; i++){
					// 	alert( $checkboies[i].value );
					// }

					// each方法是jQuery对象提供用来遍历元素的方法
					// 在遍历的function函数中,有一个this对象,这个this对象,就是当前遍历到的dom对象
					$checkboies.each(function () {
						alert( this.value );
					});

				});
				//5.获取下拉框选中的内容  
				$("#btn5").click(function(){
					// 获取选中的option标签对象
					var $options = $("select option:selected");
					// 遍历,获取option标签中的文本内容
					$options.each(function () {
						// 在each遍历的function函数中,有一个this对象。这个this对象是当前正在遍历到的dom对象
						alert(this.innerHTML);
					});
				});
			})	
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。