个人java学习路线-jQuery

介绍

jQuery: JavaScript Query 辅助JavaScript开发的js类库
因为是js类库,所以用前要引入jquery.js文件
了解一些关键的就好,其它看看就行,要用时看API帮助文档

初识

介绍

jQuery对象是dom对象的数组+jQuery提供的一系列功能函数
例如:$(function (){})可以代替window.οnlοad=function (){}

1.什么是dom对象?
   document.getElementById()
   document.getElementsByName()
   document.getElementsByTagName()
   document.createElement()
   类似这些方法创建的对象是Dom对象
   DOM对象alert出来:
      alert(document.getElementById(“btnId”))----->[object HTMLButtonElement]

2.什么是jQuery对象?
   通过jQuery提供的API创建的对象,是jQuery对象
   通过jQuery包装的Dom对象,也是jQuery对象
   通过jQuery提供的API查询到的对象,是jQuery对象
   jQuery对象alert出来的效果是:
      alert($(document.getElementById(“btnId”)))----->[object Object]

3 . jQuery对象不能使用DOM对象的属性和方法,反过来也一样

4 . Dom和jQuery对象的互转
   1>.dom对象转化成jQuery对象(*重点)
      先有DOM对象
      $(DOM对象)即可转换为jQuery对象($(document.getElementById(“testDiv”)))

   2>.jQuery对象转换为dom对象
      先有jQuery对象
      jQuery对象[下标]取出相应的DOM对象($(document.getElementById(“testDiv”))[0])

看看例子

<script type="text/javascript">
	window.onload=function (){
	var $btnObj=document.getElementById("btnId");
	//alert($btnObj);    	//dom对象 [object HTMLButtonElement]
	$btnObj.onclick=function (){
		alert("js的单机事件");
	}
</script>
<button id="btnId">SayHello</button>

下面代码都在<script type=“text/javascript”></script>中

$(function (){
var $btnObj=$("#btnId");
	$btnObj.click(function (){
		alert("jQuery的单击事件")
	})
	alert(document.getElementById("btnId"))//dom对象
	alert($(document.getElementById("btnId")))//jQuery对象
})

‘$’是什么

直接alert即可

$(function(){
	alert($);
});

网页会弹出
function( selector, context ) {
// The jQuery object is actually just the init constructor ‘enhanced’
return new jQuery.fn.init( selector, context, rootjQuery );
}
可见$是函数

核心函数

$(function (){//传入为函数$(function(){});
   alert("页面加载完成之后,自动调用");
    $(
       " <div>"+
       "     <span>div-span1</span>"+
       "     <span>div-span2</span>"+
       " </div>"
    ).appendTo("body");

    alert($("button").length)	//$("button").length---有几个button
});
传入参数为[函数]时:在文档加载完成后执行这个函数
ps: $(document).ready(function(){   //这个是$(function(){});的全写

传入参数为[HTML字符串]时:根据这个字符串创建元素节点对象
    会对我们创建这个html标签对象

传入参数为[选择器字符串]时:根据这个字符串查找元素节点对象
    $("#id属性值");  id选择器,根据id查询标签对象
    $("标签名");     标签名选择器,根据指定的标签名查询标签对象
    $(".class属性值");   类型选择器,可以根据class属性查询标签对象

传入参数为[DOM对象]时:将DOM对象包装为jQuery对象返回
    会把这个dom对象转换为jQuery对象	

选择器

基本选择器

$(function (){
	//1.选择 id 为 one 的元素
		$("#one")
	//2.选择 class 为 mini 的所有元素
		$(".mini")
	//3.选择 元素名是 div 的所有元素
		$("div")
	//4.选择所有的元素
		$("*")
	//5.选择所有的 span 元素和id为two的元素
		$("span,#two")
})

层次选择器

$(document).ready(function (){
	//1.选择 body 内的所有 div 元素
		$("body div")
	//2.在 body 内, 选择div子元素
		$("body > div")
	//3.选择 id 为 one 的下一个 div 元素
		$("#one + div")
	//4.选择 id 为 two 的元素后面的所有 div 兄弟元素
		$("#two~div")
});			
		

基本的过滤选择器

$(document).ready(function(){
	//1.选择第一个 div 元素
		$("div:first")
	//2.选择最后一个 div 元素
		$("div:last")
	//3.选择class不为 one 的所有 div 元素
		$("div:not(.one)")
	//4.选择索引值为偶数的 div 元素
		$("div:even")
	//5.选择索引值为奇数的 div 元素
		$("div:odd")
	//6.选择索引值为大于 3 的 div 元素
		$("div:gt(3)")
	//7.选择索引值为等于 3 的 div 元素
		$("div:eq(3)")
	//8.选择索引值为小于 3 的 div 元素
		$("div:lt(3)")
	//9.选择所有的标题元素
		$(":header")
	//10.选择当前正在执行动画的所有元素素
		$(":animated")
	//11.选择没有执行动画的最后一个div素
		$("div:not(:animated):last")
});

内容过滤选择器

:contains(text) //匹配包含给定文本的元素
:empty //匹配所有不包含子元素或者文本的空元素
:has(selector) //匹配含有选择器所匹配的元素的元素
:parent v //匹配所有含有子元素或者文本的元素

$(document).ready(function(){
	//1.选择 含有文本 'di' 的 div 元素
		$("div:contains('di')")
	//2.选择不包含子元素(或者文本元素) 的 div 空元素
		$("div:empty")
	//3.选择含有 class 为 mini 元素的 div 元素
		$("div:has(.mini)")
	//4.选择含有子元素(或者文本元素)的div元素
		$("div:parent")
});

属性过滤选择器

[attribute] //匹配包含给定属性的元素
[attribute=value] //匹配给定的属性是某个特定值的元素
[attribute!=value] //匹配所有不含有指定属性,或者属性不等于特定值的元素
[attribute^=value] //匹配给定的属性是以某些值开始的元素
[attribute$=value] //匹配给定的属性是以某些值结尾的元素
[attribute*=value] //匹配给定的属性是以包含某些值的元素
[attrSel1][attrSel2][attrSelN] //复合属性选择器,需要同时满足多个条件时使用

$(function() {
	//1.选取含有 属性title 的div元素
		$("div[title]")
	//2.选取 属性title值等于'test'的div元素
		$("div[title='test']")
	//3.选取 属性title值不等于'test'的div元素(*没有属性title的也将被选中)
		$("div[title!='test']")
	//4.选取 属性title值 以'te'开始 的div元素
		$("div[title^='te']")
	//5.选取 属性title值 以'est'结束 的div元素
		$("div[title$='est']")
	//6.选取 属性title值 含有'es'的div元素
		$("div[title*='es']")
	//7.首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素
		$("div[id][title*='es']")
	//8.选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素
		$("div[title][title!='test']")
});

表单对象属性过滤器

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

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

$(function(){
	//1.对表单内 可见input 赋值操作
	$("#btn1").click(function(){
		$(":text:enabled").val("New Value");
	});
	//2.对表单内 不可见input 赋值操作
	$("#btn2").click(function(){
		$(":text:disabled").val("New Value Too");
	});
	//3.获取多选框选中的个数  使用size()方法获取选取到的元素集合的元素个数
	$("#btn3").click(function(){
		alert($(":checkbox:checked").size())
	});
	//4.获取多选框,每个选中的value值
	$("#btn4").click(function(){
		var str = "";
		var eles = $(":checkbox:checked");
		console.log(eles);
		for(var i=0;i<eles.size();i++){
			str += "【"+$(eles[i]).val()+"】";
		}
		//jQuery的遍历方法
		/*eles.each(function (){
			alert(this.value)
		})*/
		alert(str)
	});
	//5.获取下拉框选中的内容  
	$("#btn5").click(function(){
		var str = "";
		//注意这个选择器的特殊,因为select里面的option是真正的被选择项,
		//所以 :selected 选择器和 select[name='test']选择器的关系是子父关系
		//必须按照基本选择器选择后代的方法选
		var els = $("select option:selected");
		console.log(els);
		for(var i=0;i<els.size();i++){
			str += "【"+$(els[i]).val()+"】";
		}
		alert(str)
	});
})

元素筛选方法

过滤
eq(index|-index) 		//	获取给定索引的元素
first() 				//获取第一个元素
last() 					//获取最后一个元素
hasClass(class) 		//
filter(expr|obj|ele|fn) //留下匹配的元素
 is(expr|obj|ele|fn)1.6* //判断是否匹配给定的选择器,只要有一个匹配就返回,true
 has(expr|ele) 			//返回包含有匹配选择器的元素的元素
 not(expr|ele|fn) 		//删除匹配选择器的元素
 slice(start,[end]) 		//

 查找
 children([expr]) 			//返回匹配给定选择器的子元素
 closest(expr,[con]|obj|ele)1.6*   //
 find(expr|obj|ele) 				//返回匹配给定选择器的后代元素
 next([expr]) 					//返回当前元素的下一个兄弟元素
 nextall([expr]) 				//返回当前元素后面所有的兄弟元素
 nextUntil([exp|ele][,fil])1.6* 	//返回当前元素到指定匹配的元素为止的后面元素
 parent([expr]) 					//返回父元素
 parents([expr]) 				//
 parentsUntil([exp|ele][,fil])1.6* //
 prev([expr]) 					//返回当前元素的上一个兄弟元素
 prevall([expr]) 				//返回当前元素前面所有的兄弟元素
 prevUntil([exp|ele][,fil])1.6* 	//返回当前元素到指定匹配的元素为止的前面元素
 siblings([expr]) 				//返回所有兄弟元素

 串联
 add(expr|ele|html|obj[,con]) 	//把add匹配的选择器的元素添加到当前jQuery对象中



$(document).ready(function(){
	//(1)eq()  选择索引值为等于 3 的 div 元素
		$("div").eq(3)
	//(2)first()选择第一个 div 元素
		$("div").first()
	//(3)last()选择最后一个 div 元素
		$("div").last()
	//(4)filter()在div中选择索引为偶数的
		$("div").filter(":even")
	//(5)is()判断#one是否为:empty或:parent
	//is用来检测jq对象是否符合指定的选择器
	$("#one").is(":empty")
	$("#one").is(":parent")
	//(6)has()选择div中包含.mini的
		//has(selector)  选择器字符串    是否包含selector
		$("div").has(".mini")
	//(7)not()选择div中class不为one的
		//not(selector)  选择不是selector的元素
		$("div").not(".one")
	//(8)children()在body中选择所有class为one的div子元素
		//children()  选出所有的子元素
		$("body").children("div.one")
	//(9)find()在body中选择所有class为mini的div元素
		//find()  选出所有的后代元素
		$("body").find("div.mini")
	//(10)next() #one的下一个div
		//next()  选择下一个兄弟元素
		$("#one").next("div")
	//(11)nextAll() #one后面所有的span元素
		//nextAll()   选出后面所有的元素
		$("#one").nextAll("span")
	//(12)nextUntil() #one和span之间的元素
		$("#one").nextUntil("span").css("background-color","#bfa")
	//(13)parent() .mini的父元素
		$(".mini").parent().
	//(14)prev() #two的上一个div
		$("#two").prev()
	//(15)prevAll() span前面所有的div
		$("span").prevAll("div")
	//(16)prevUntil() span向前直到#one的元素
		$("span").prevUntil("#one")
	//(17)siblings() #two的所有兄弟元素
		//siblings()    找到所有的兄弟元素,包括前面的和后面的
		$("#two").siblings()
	//(18)add()选择所有的 span 元素和id为two的元素
		$("span").add("#two")
				.add(".mini").add("#one")
});

DOM操作

DOM属性操作

HTML代码/文本/值
html([val|fn])    a.html()取出a的html值    a.html(val)  让a的html值变为val
text([val|fn]) 	  a.text()取出a的text值    a.text(val)  让a的文本值变为val
val([val|fn|arr]) a.val()  取出a的val值(input)   a.val(v)  设置a的value值为v 

 html()	可以设置和获取起始标签和结束标签中的内容	类似dom属性innerHTML
 text()	可以设置和获取起始标签和结束标签中的文本	类似dom属性innerText
 val()	可以设置和获取表单项的value属性值		类似dom属性value

属性
attr(name|pro|key,val|fn)  
 1、a.attr('name')取出a的name值   2、a.attr("name","username")把a的name值设置为username
 
removeAttr(name) 
a.removeAttr('class')    移除a的class属性


prop(name|pro|key,val|fn)1.6+ 
1、a.prop('id')  取出a的id值   2、a.prop('id',"bj")  设置a的id值为bj
removeProp(name)1.6+
a.removeProp('class') 移除a的class属性
$(function(){
	$(":radio").val(["radio2"]);		//radio选中radio2
	$(":checkbox").val(["checkbox1","checkbox3"]);	//checkbox选中checkbox1和checkbox3
	$("#multiple").val(["mul1","mul3"]);	//id为multiple的选中mul1和mul3
	$("#single").val(["sin3"])		//id为single的选中sin3
	$(":radio,:checkbox").val(["radio2","checkbox1","checkbox3"]);	//radio选中radio2yi以及checkbox选中checkbox1和checkbox3
})

DOM增删改

文档处理
内部插入	
appendTo(content) 	   a.appendTo(b);  把a加到b里面				  添加到最后面
prependTo(content)	   a.prependTo(b); 把a添加到b里面    			  添加到最前面

 appendTo()		a.appendTo(b)	把a插入到b子元素末尾,成为最后一个子元素
 prependTo()	a.prependTo(b)	把a插入到b所有子元素前面,成为第一个子元素

外部插入
insertAfter(content) 	a.insertAfter(b);  把a插入到b的后面
insertBefore(content) 	a.insertBefore(b); 把a插入到b的前面

 insertAfter()		a.insertAfter(b)	得到ba
 insertBefore()		a.insertBefore(b)	得到ab

替换
replaceWith(content|fn) a.replaceWith(b)  把a用b替换
replaceAll(selector) 	a.replaceAll(b)	  用a替换所有的b

 replaceWith()		a.replaceWith(b)	用b替换a
 replaceAll()		a.repalceAll(b)		用a替换掉所有的b

删除
empty() 				a.empty()   把a掏空,把a里面的所有元素都删除
remove([expr]) 			a.remove(b)  所有的a,是b的话就会删除	a.remove()删除a		

empty()				a.empty();	删除a标签里的内容
remove()			a.remove();	删除a标签

没例子了解了解就好

CSS样式操作

$(function(){
	var $divEle = $('div:first');
		//addClass() - 向被选元素添加一个或多个类(样式)
		$divEle.addClass('redDiv blueBorder')
		//removeClass() - 从被选元素删除一个或多个类 
		$divEle.removeClass('redDiv blueBorder')
		//toggleClass() - 对被选元素进行添加/删除类的切换操作 
		$divEle.toggleClass('blueBorder')
	
		//offset() - 返回第一个匹配元素相对于文档的位置。
		var pos=$divEle.offset();
		//console.log(pos)
		$divEle.offset({//设置位置
			top:100,
			left:50
		});
})

事件

文档加载

- jquery的页面加载完成之后是浏览器的内核解析完页面的标签创建好DOM对象之后就会马上执行
- 原生js的页面加载完成之后,除了要等浏览器内核被解析完标签创建好DOM对象,还要等标签显示时需要的内容加载完成

- jQuery先执行,js在页面加载完成之后才执行

- 原生js的页面加载完成之后,只会执行最后一次的赋值函数
- jQuery的页面加载完成之后时全部把注册的function函数,依次顺序全部执行
window.onload=function (){
		alert("原生js页面加载完成之后--1")
	}
	window.onload=function (){
		alert("原生js页面加载完成之后--2")
	}
	window.onload=function (){
		alert("原生js页面加载完成之后--3")
	}

	$(function (){
		alert("jquery的页面加载完成之后--1")
	})
	$(function (){
		alert("jquery的页面加载完成之后--2")
	})
	$(function (){
		alert("jquery的页面加载完成之后--3")
	})

执行结果为:
jquery的页面加载完成之后–1
jquery的页面加载完成之后–2
jquery的页面加载完成之后–3
页面加载
原生js页面加载完成之后–3

事件绑定

click() 	 有参(function函数)绑定单机事件,无参触发单机事件
mouseover() 鼠标移入事件
mouseout()  鼠标移除事件
bind()		一次绑定多个事件
one()		同上,但是one一个事件只会响应一次
unbind()	解除绑定,可以解除多个
live()		也是绑定事件,可以绑定选择器匹配的所有元素事件,哪怕这个元素是后面动态创建出来的也有效

事件冒泡

事件冒泡:触发子事件的时候,同一个事件也被传递到父元素的事件里去响应
-在子元素事件函数体内,return false可以阻止事件的冒泡传递
$(function(){
	$("div").click(function (){
		alert("我是div")
	})
	$("span").click(function (){
		alert("我是span")
		return false;
	})
})
//<div><span></span></div>

动画

	基本
	show([speed,[easing],[fn]]) 
	hide([speed,[easing],[fn]]) 
	toggle([speed],[easing],[fn]) 
	滑动
	slideDown([spe],[eas],[fn]) 
	slideUp([speed,[easing],[fn]]) 
	slideToggle([speed],[easing],[fn]) 
	淡入淡出
	fadeIn([speed],[eas],[fn]) 
	fadeOut([speed],[eas],[fn]) 
	fadeTo([[spe],opa,[eas],[fn]]) 
	fadeToggle([speed,[eas],[fn]])

$(function(){
	//显示   show()
		$("#div1").show(1500,function (){
			alert("show动画完成");
		});
	//隐藏  hide()
		$("#div1").hide(1500);
	//切换   toggle()
		$("#div1").toggle(1500)
	//淡入   fadeIn()
		$("#div1").fadeIn(1500);
	//淡出  fadeOut()
		$("#div1").fadeOut(1500);
	//淡化到  fadeTo()
		$("#div1").fadeTo(1500,0.5,function (){
			alert("已经淡化到0.5")
		});
	//淡化切换  fadeToggle()
		$("#div1").fadeToggle(1000,function(){
			alert("fadeToggle完成")
		});
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值