首页 > 其他分享 >jQuery入门

jQuery入门

时间:2024-03-11 11:46:41浏览次数:30  
标签:jQuery jquery 匹配 入门 dom 元素 value child

jQuery入门
基本概念:jQuery是一个快速,小型且功能丰富的JavaScript库。借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得更加简单。
个人理解:jQuery是js的一个库,本质就是封装好的js函数,可以和javascript一起使用,使用jQuery可以简化开发
1、加载方式:

传统的dom编程的方式
	<script>
		window.onload=function(){
		alert("页面加载成功");
		}
	</script>
			
jquery 的方式
	<script src="lib/jquery-1.8.0.js"></script>
	<script>		
		$(function(){// '$' 可以换成 'jQuery'
			alert("页面加载成功,jquery");
		});
	</script>

二者的区别:
1) window.onload 的方式,在页面完全加载成功(比如图片,框架集中的网页等)以后触发,而jquery的 $() 事件,是在页加载完以后就触发,不用等图片等相关资源加载完,也就是说,jquery的 $() 事件比较早。
2) window.onload,不可以迭加, 如果有多个,最后只会执行最后一个,而jquery的可以迭加

2、jquery中的遍历

1)$.map(array, fn(value,index){})array 是一个数组, fn 是一个函数 $.map 的作用就是对数组 array中的每个元素,调用 fn这个函数进行处理, 处理完以后,会返回一个新的数组
2)$.each(array, fn(index,value){})array 是一个数组, fn 是一个函数 $.each 的作用就是对数组 array 中的每个元素,调用 fn这个函数进行处理, 没有返回值

3、jquery对象和dom对象
dom 对象
就是传统的javascript中通过 dom api得到的对象
//获取dom对象
var dom1 = document.getElementById("h11");
console.log(dom1.innerText);

jquery 对象
通过jquery选择器,或用jquery包装普通的dom对象得到
	//获取jquery对象
	var jquery1 = $("#h11");
	console.log(jquery1.text());


二者之间的转换:
1)dom对象转成jquery对象
	//dom对象转成jquery对象
	var jquery2 = $(dom1);
	console.log(jquery2.html());
2)query对象,变成dom对象
	//query对象,变成dom对象
	var dom2 = jquery1.get(0);
	//或者var dom2 = jquery1[0];
	console.log(dom2.innerHTML);


附: 关于this
    JavaScript this 关键词指的是它所属的对象。
      在方法中,this 指的是所有者对象。
      单独的情况下,this 指的是全局对象。
      在函数中,this 指的是全局对象。
      在函数中,严格模式下,this 是 undefined。
      在事件中,this 指的是接收事件的元素。

4、jquery 选择器
基本 层级 定位 内容 可见性 属性 子元素 表单 表单属性
1)基本 5 个
(1) #id
(2) element
(3) class
(4) *
(5) selector1,selector12 , ...

2)层级 4 个
	(1) ancestor descendant
	(2) parent > child
	(3) prev + next
	(4) prev ~ siblings

	(1)ancestor descendant 
		选中ancestor里面的所有 descendant 元素,不管多少层级

	(2)parent > child
		只选择直接子级

	(3)prev + next
		匹配的是prev后面的所有 next元素

	(4)prev ~ siblings
		选中prev的所有兄弟元素

3)定位
	(1) :first			//匹配找到的第一个元素
	(2) :last			//匹配找到的第一个元素
	(3) :not(选择器)	//反选(选取不符合某一组选择器的元素)
	(4) :odd			//奇数(下标从0开始算)
	(5) :even			//偶数(下标从0开始算)
	(6) :eq 			//等于(下标从0开始算)
	(7) :gt				//大于(下标从0开始算)
	(8) :lt 			//小于(下标从0开始算)
		注::gt和:lt可以一起使用
			$("tr:gt(0):lt(2)").css("background","gold");  //选中的是第二,三 行

	(9) :header  		//匹配如 h1, h2, h3之类的标题元素
	  
	(10) :animated		//匹配正在做动画的元素

4)内容 4 个
	(1) :contains
		包含某文本元素
	(2) :empty
		匹配所有空元素		
	(3) :has(选择器)
		包含某个子元素
	(4) :parent
		匹配含有子元素或者文本的元素, (找做父亲的元素)

5)可见性
	(1) :hidden
			匹配所有不可见元素 (display:none) ,包括隐含控件 (type = hidden)
			
	(2) :visible
			和上例相反

		`
        例:
		<!DOCTYPE html>
		<html lang="en">
		<head>
			<meta charset="UTF-8">
			<meta name="viewport" content="width=device-width, initial-scale=1.0">
			<title>test09</title>
			<script src="lib/jquery-1.8.0.js"></script>
		</head>
		<body>
			<table>
				<tr>
					<td style="display: none;">桃子</td><td>苹果</td>
				</tr>
			</table>
			<button onclick="$('td:hidden').show()">显示</button><button onclick="$('td:visible').hide()">隐藏</button>
			//show() jquery显示方法
			//hide() jquery隐藏方法
		</body>
		</html>      

`

6)属性 7 个
	(1) [attribute=value]  匹配某个属性是某个值的元素
	(2) [attribute!=value] 和上例相反
	(3) [attribute$=value] 选择属性值以value结尾的
	(4) [attribute^=value] 匹配以属性值 以value 开头的,正好和 $相反
	(5) [attribute*=value] 匹配以属性值包含value的
	(6) [selector1][selector2][selectorN] 复合的多条件属性选择器
	(7) [attribute] 匹配含有这个属性的元素

7)子元素
	(1) :first-child 匹配其父元素下的第一个子元素
	(2) :last-child  匹配其父元素下的最后一个子元素
	(3) :nth-child   匹配其父元素下的第n个子元素((n=1,2,3,4...))或奇偶元素
		注:此选择器下标从1开始,上述:even和:odd从0开始)
			:nth-child(even)
			:nth-child(odd)
			:nth-child(3n)
			:nth-child(2)
			:nth-child(3n+1)
			:nth-child(3n+2)
	(4) :only-child  如果某个元素是父元素中唯一的子元素,那将会被匹配 (独生子)

8)表单 11 个
	(1):input    	匹配所有 input, textarea, select 和 button 元素 请密切注意,它匹配  textarea,select,button
		$(":input")
	(2):checkbox  	匹配所有复选框
		$(":checkbox") = $("input[type=checkbox]")			
	(3):button  	匹配所有按钮,但不匹配 input type="submit 
		$(":button")
	(4):file		文件选择框
		$(":file")
	(5):image		所有图片
		$(":image")
	(6):radio		所有单选按钮
		$(":radio")
	(7):reset		所有重置按钮
		$(":reset")
	(8):password	所有密码框
		$(":password")
	(9):submit		所有的提交按钮
		$(":submit")
	(10):text		所有文本框
		$(":text")

9)表单属性 4个
	(1) :enabled 	//选中有enabled属性的元素(enabled表示任何已启用的元素。如果元素可以被激活(例如被选择、单击、输入文本等),或者能够获得焦点,那么它就是启用的。)
	(2) :checked	//选中有checked属性的元素(checked表示在页面加载时应该预先选定 input 元素)
	(3) :disabled	//选中有disabled属性的元素(disabled表示元素不可变、不能聚焦或与表单一同提交
	(4) :selected	//选中有selected属性的元素(selected表示在页面加载时应预先选择一个选项。预先选择的选项将首先显示在下拉列表中)

5、jquery常用方法
1)节点遍历
(1) next() //选择下一个元素
(2) nextAll() //选择当元素后的所有元素
(3) siblings() //选择所有兄弟元素

2)jquery的dom节点操作
	(1) 内部插入元素
		append()	//从后面插入
    	prepend()	//从前面插入
    	appendTo()	//从后面插入到元素中
		prependTo()	//从前面插入到元素中

			注:append()和appendTo()的区别:a.append(b)是在a中插入b;a.appendTo(b)是a插入到b中去。prepend和prependTo同理
		
	(2) 外部插入元素
		before()	//插入到当前元素的前面
		after()		//插入到当前元素的后面

		这两个方法,都是添加的 "兄弟"
		
	(3) 移除
		remove()
			从dom中删除所匹配的元素,但这个方法不会把匹配的元素从jquery对象中删除,这样我们将来还可以使用这些对象,但这些元素对应的数据和事件会丢失

		empty()
			清空元素中的子节点

		detach()
			从dom节点中删除匹配元素,但不会把元素从jquery对象中删除,以后还可以用,而且它绑定的数据和事件不会丢失
		
3)jquery中的属性操作
	attr(key,value)		//给某个属性传值
	attr(key) 			//取某个属性的值
	attr(properties)	//给某个属性传一组值
	remveAttr(key)		//移除某个属性值

4)jquery中的css操作
	.css(k,v)		//一个个的设置css样式
	.addClass(class名称);		//添加一组样式
	.removeClass(class名称);	//移除样式
	.toggleClass(class名称);	//切换样式

	注:removeClass() 如果传入样式名,则移除样式名对应的样式,如果不传入,则移除所有的 class 样式

5)query对文本/值的操作
	//给表单元素的value 的取值或传值
	val()
	val(v)

	//给 div ,span,td,a, li,p 之类的元素取值或传值
	html()
	html(v)

	//给 div ,span,td,a, li,p 之类的元素取值或传值,取值的时候,不取html元素,只取文本
	text()
	text(v)

	注:text(v)、html(v)会将 标签中的'文本和标签' 替换成 v

6)动态效果
	show()		显示(可选择的参数 speed,easing,callback)
	hide()		隐藏(可选择的参数 speed,easing,callback)
	
	toggle()	显示/隐藏(可选择的参数 speed,callback,switch)
	注:show()、hide()、toggle() 沿对角线消失或出现
	
	fadeIn()	淡入(可选择的参数 speed,callback)
	fadeOut()	淡出(可选择的参数 speed,callback)
	
	slideUp()	滑动向上隐藏(可选择的参数 speed,callback)
	slideDown()	滑动向下出现(可选择的参数 speed,callback)

	传递的参数:
	speed		显示效果的速度(可以是毫秒值、"slow"、"fast")
	easing		在动画的不同点上元素的速度("swing"--开头/结尾移动慢,中间移动快、"linear"--匀速移动;默认是"swing")
	callback	回调 (方法调用之后,要执行的函数)
	switch		取值true 即 toggle(true) 表示只会显示元素,等同于show();取值false 即 toggle(false) 表示只会隐藏元素,等同于hide()

牛刀小试:
案例:现在有一个数组,有十条数据 var userList= [{id:10,userName:"admin",password:"123",note:"管理员",photo:"a.jpg"},{....},{}]
要求
1)用jquery把这个数组,构造出一个表格,显示出 id, userName 两列
2)隔行变色
3)鼠标滑过行高亮
4)鼠标滑过人的信息的时候, 在鼠标边上,显示这个人的头象,和其他信息(密码,备注)
本文案例及源代码:
链接:https://pan.baidu.com/s/14Ppk6verYinQBVNXv-cxvg?pwd=5u4e
提取码:5u4e

标签:jQuery,jquery,匹配,入门,dom,元素,value,child
From: https://www.cnblogs.com/namenana/p/18065689

相关文章

  • 搭建交换机模拟环境及SSH连接,华为NSP软件入门使用教程
    如果你是通过搜索搜到了这篇文章,那么一定是工作或者学习中需要用交换机,但是又没物理机测试学习,所以需要搭建本地的虚拟环境学习。这篇文章是我进行交换机命令入门学习写的,笔者之前也是网上搜索,关于交换机的内容实在太少了。所以记录下来,给后来者少走弯路1.华为ENSP软件下载官......
  • 给python入门者的帮助,关于函数和装饰器的理解。
    有时候学习不能过于较真,至少在合适的时机之前,还是闷头吞知识,等吃饱了,就有精力(足够的能量储备,足够的经验)来理解更深的理解,但是很多时候,包括我自己,都喜欢在吃饱之前就研究自己在吃什么,为什么这个东西能吃这种问题。最近发现几年前写的一篇关于python函数return的一些理解,又被查......
  • Jquery学习1
    一.jquery中prototypejavascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。每一个构造函数都有一个属性叫做原型。这个属性非常有用:为一个特定类声明通用的变量或者函数。prototype是一个对象,因此,你能够给它添加属性。你添......
  • Django入门
    Django入门启动django项目之后如何添加更多的功能回想自己编写的web框架如果要添加功能就去urls.py和views.py【1】添加URL映射在项目的urls.py文件中,通过导入相应的应用(app)及其视图函数,并使用path()或include()函数来定义URL映射规则。例如,如果要在名为"myap......
  • kubernetes快速入门之K3S
    kubernetes简介Kubernetes是一个开源的容器编排引擎和容器集群管理工具,用来对容器化应用进行自动化部署、扩缩和管理。Kubernetes这个名字源于希腊语,意为“舵手”或“飞行员”。k8s这个缩写是因为k和s之间有8个字符。Google在2014年开源了Kubernetes项目。优势......
  • linux Shell 命令行-01-intro 入门介绍
    拓展阅读linuxShell命令行-00-intro入门介绍linuxShell命令行-02-var变量linuxShell命令行-03-array数组linuxShell命令行-04-operator操作符linuxShell命令行-05-test验证是否符合条件linuxShell命令行-06-flowcontrol流程控制linuxShell命令行-07-f......
  • golang入门概览
    一、语法golang中数据类型有值类型(boolintstring)和派生类型(structinterface等等)。值类型通常在栈上分配内存,派生类型通常在堆上分配内存。golang中的函数调用,只有值传递,没有引用传递。但是golang提供了指针,使用指针可以达到引用传参的效果,在函数内部修改参数后可以在外......
  • Rust-入门-01
    Rust语言有哪些特性?建议一:从整体出发,不要让自己陷入到细节中去建议二:抛弃一次性学会的念头语言架构所有权系统编程范式语言架构类型系统内存管理Rust语言设计哲学是什么?Rust社区和生态如何?参考1......
  • Java入门(向世界呐喊、Java运行机制、IDEA)
    Java入门1.HelloWorld!(向世界呐喊)新建文件夹用于存放代码(Code)->新建Java文件(Hello.java)->使用Notepad++进行编辑->在当前路径打开CMDpublicclassHello{ publicstaticvoidmain(String[]args){ System.out.print("HelloWorld!"); }}注意:系统可能没有显示文件......
  • jQuery中使用箭头函数,调用$(this)失效?
    1.问题在jQuery中使用箭头函数,最后调用$(this)发现无效?$(function(){//鼠标经过$('.nav>li').mouseover(()=>{//$(this)jQuery当前元素this不要加引号//show()显示元素hide()隐藏元素$(this).children('ul').show();}......