JQuery一篇入门

JQuery

引入

jQuery 2.x has the same API as jQuery 1.x, but does not support Internet Explorer 6, 7,or 8. (不⽀持 ie6 7 8,如果需要下载 1.X)

(1)完整版 : jquery-2.1.4.js -->学习版本(学习源码 向⾼⼿学习是最好学习⽅法)

(2)压缩版 : jquery-2.1.4.min.js -->开发版本(压缩版,减少传输)

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

$ 符号在 jQuery 中代表对 jQuery 对象的引⽤, "jQuery"是核⼼对象。通过该对象可以获取jQuery对 象,调⽤jQuery提供的⽅法等。只有jQuery对象才能调⽤jQuery提供的⽅法。

$ <==> jQuery

Jquery包装集对象

原始的 Dom 对象只有 DOM 接⼝提供的⽅法和属性,通过js代码获取的对象都是 Dom 对象;⽽通过 jQuery 获取的对象是 jQuery 包 装集对象,简称jQuery对象,只有jQuery对象才能使⽤jQuery提供的⽅法。

Dom对象

javascript 中获取 Dom 对象,Dom 对象只有有限的属性和⽅法:

var div = document.getElementById("testDiv");
var divs = document.getElementsByTagName("div");

Jquery包装集对象

可以说是 Dom 对象的扩充。在 jQuery 的世界中将所有的对象, ⽆论是⼀个还是⼀组,都封装成⼀个 jQuery 包装集,⽐如获取包含⼀个元素的 jQuery 包装集:

var jQueryObject = $("#testDiv");

Dom对象 转 Jquery对象

Dom 对象转为 jQuery 对象,只需要利⽤ $() ⽅法进⾏包装即可

var domDiv = document.getElementById('mydiv'); // 获取Dom对象
mydiv = $(domDiv);

Jquery对象 转 Dom对象

// 第⼀种⽅式 获取jQuery对象
var jqueryDiv = jQuery('#mydiv');
// 第⼆种⽅式 获取jQuery对象
jqueryDiv = $('#mydiv');
var dom = jqueryDiv[0]; // 将以获取的jquery对象转为dom

选择器

基本选择器

<style type="text/css">
 .blue{
 background: blue;
 }
</style>
<body>
 <div id="mydiv1">id选择器1<span>span中的内容</span></div>
 <div id="mydiv2" class="blue">元素选择器</div>
 <span class="blue">样式选择器</span>
</body>
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
 // id选择器
 console.log("======id====");
 var idSelecter = $('#mydiv1');
 console.log(idSelecter.html());
 console.log(idSelecter.text());
 // 元素选择器
 console.log("======name====");
 var nameSe = $('div'); // 有多个div元素
 nameSe.each(function(){
 // this是dom对象,$(this)是jquery对象
 console.log($(this).text());
 });
 // 类选择器,class
 console.log("======class====");
 var classSe = $('.blue'); // 有多个class=blue的元素
 classSe.each(function(){
 console.log($(this).text());
 });
 // 通⽤选择器:*
 console.log("======所有元素====");
 var all = $("*");
 console.log(all.length);
 // 组合选择器
 console.log("======组合====");
 var unionSe = $('span, .blue,div');
 unionSe.each(function(){
 console.log($(this).text());
 });
</script>

层次选择器

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title>层次选择器</title>
 <script src="js/jquery-3.4.1.js" type="text/javascript"></script>
 <style type="text/css">
 .testColor{
 background: green;
 }
 .gray{
 background: gray;
 }
 </style>
 </head>
 <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>
 <div>
 选择器2<div>选择器2中的div</div>
 </div>
 </div>
 </body>
 <script type="text/javascript">
 console.log("=========后代选择器-选择所有后代=====");
 var ancestorS = $('#parent div');
 ancestorS.each(function(){
 console.log($(this).text());
 });

 console.log("=========⼦代选择器-选择⼉⼦辈=====");
 var child = $('#parent>div');
 child.each(function(){
 console.log($(this).text());
 });

 console.log("=========相邻选择器=====");
 var pre_next = $(".gray + img");
 console.log(pre_next.length);

 console.log("=========同辈选择器,其后,(弟弟)=====");
 var pre_siblings = $(".gray ~ img");
 console.log(pre_siblings.length);
 </script>
</html>

表单选择器

Jquery Dom操作

属性获取

<form action="" id="myform">
 <input type="checkbox" name="ch" checked="checked"/> aa
 <input type="checkbox" name="ch" /> bb
</form>

<script type="text/javascript">
 var ch = $("input[type='checkbox']")
 console.log(ch)
 ch.each(function(idx, em){
 console.log(idx + "-" + $(em) + "=" + this)
 console.log($(em).attr('checked') + "==" + $(em).prop('checked'))
 console.log('--------------')
 })
</script>

属性设置

属性移除

样式操作

1)css({‘样式名’:’样式值’,’样式名2’:’样式值2’})
例:css({"background-color":"red","color":"#fff"});
2)css(“样式名”,”样式值”)
例:css('color','white')

元素内容

添加元素

 <body>
 <h3>prepend()⽅法前追加内容</h3>
 <h3>prependTo()⽅法前追加内容</h3>
 <h3>append()⽅法后追加内容</h3>
 <h3>appendTo()⽅法后追加内容</h3>
 <span class="red">男神</span>
 <span class="blue">偶像</span>
 <div class="green">
 <span >⼩鲜⾁</span>
 </div>
 </body>
</html>
<script type="text/javascript">
 var str ="<span id='mydiv' style='padding: 8px;width: 180px;backgroundcolor:#ADFF2F;'>动态创建span</span>";
 // 1、使⽤prepend前加内容
 $("body").prepend(str);

 // 2、使⽤prependTo前加内容
 $("<b>开头</b>").prependTo('body');

 // 3、使⽤append后加内容
 $("body").append(str);
 // $("div").append($('.red')); // 当把已存在的元素添加到另⼀处的时候相当于移动

 // 4、使⽤appendTo后追加内容
 $(str).appendTo('body');
 // $('.blue').appendTo("div");
</script>

删除元素

<script type="text/javascript">
 // 删除所选元素 或指定的⼦元素
  $("span").remove();
 // 删除样式为blue的span
  $("span.blue").remove();
 // 清空元素
 $("span").empty();
 $(".green").empty();
</script>

遍历元素

each() $(selector).each(function(index,element)) :遍历元素 参数 function 为遍历时的回调函数, index 为遍历元素的序列号,从 0 开始。 element是当前的元素,此时是dom元素。

 <script type="text/javascript">
 $('span').each(function (idx , e) {
 console.log(idx + " ---> " + $(e).text());
 })
 </script>

事件

ready加载事件

ready()类似于 onLoad()事件 ready()可以写多个,按顺序执⾏ ( d o c u m e n t ) . r e a d y ( f u n c t i o n ( ) ) 等 价 于 (document).ready(function(){})等价于 (document).ready(function())(function(){})

bind()绑定事件

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

这类类型可以包括如下: blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter mouseleave,change, select, submit, keydown, keypress, keyup, error

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

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

普通事件

<script type="text/javascript">
 $(function(){
 /*$("#test").bind("click",function(){
 alert("世界会向那些有⽬标和远⻅的⼈让路!!");
 });*/
 /*
 * js的事件绑定
 ele.onclick=function(){};
 * */
 // 等同于上⾯的放⽅法
 $("#test").click(function(){
 alert("世界会向那些有⽬标和远⻅的⼈让路!!");
 });
 /*
 1.确定为哪些元素绑定事件
 获取元素
 2.绑定什么事件(事件类型)
 第⼀个参数:事件的类型
 3.相应事件触发的,执⾏的操作
 第⼆个参数:函数
 * */
 $("#btntest").bind('click',function(){
 // $(this).attr('disabled',true);
 $(this).prop("disabled",true);
 })
 });
 </script>

绑定多个事件

<script type="text/javascript">
 $(function(){
 // 绑定click 和 mouseout事件
 /*$("h3").bind('click mouseout',function(){
 console.log("绑多个事件");
 });*/
 // 链式编程
 $("h3").bind('click',function(){
 alert("链式编程1");
 }).bind('mouseout',function(){
 $("#slowDiv").show("slow");//让slowDiv显示
 });
 /*$("#test").click(function(){
 console.lo***击⿏标了....");
 }).mouseout(function () {
 console.log("移出⿏标了...");
 });*/
 $("#test").bind({
 click:function(){
 alert("链式编程1");
 },
 mouseout:function(){
 $("#slowDiv").show("slow");
 }
 });
 });
</script>

ajax

jquery 调⽤ ajax ⽅法:

格式:$.ajax({});

参数:

type:请求⽅式 GET/POST

url:请求地址 url

async:是否异步,默认是 true 表示异步

data:发送到服务器的数据

dataType:预期服务器返回的数据类型

contentType:设置请求头

success:请求成功时调⽤此函数

error:请求失败时调⽤此函数 get请求

<script type="text/javascript">
			$(function(){
				$.getJSON("js/info.json",function(dat){
					console.log(dat);
					$("#div2").append(JSON.stringify(dat));
				});
				$.ajax({
					url:"http://127.0.0.1:9095/allPanda",
					type:"get",
					dataType:"json",
					success:function(data){
						$("#div1").text("");
						console.log(data.length);
						for(var i=0;i<data.length;i++){
							$("#div1").append("<div>"+data[i].name+","+data[i].age+","+data[i].city+"</div>");
						}
					}
				});
				
			});
			
		</script>
全部评论

相关推荐

SinyWu:七院电话面的时候问我有没有女朋友,一听异地说你赶紧分。我:???
点赞 评论 收藏
分享
已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务