前端07-jQuery、Ajax

Jquery的下载与安装

下载地址:http://jquery.com/

在页面中引入  jquery

<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>

Dom对象和Jquery包装集对象

jQuery"的核心
             $ 符号在 jQuery 中代表对 jQuery 对象的引用, "jQuery"是核心对象
                
            DOM对象
                根据id属性获取DOM对象    document.getElementById("id属性值");
                如果元素存在那么直接获取dom对象,如果元素不存在,值为null
                
            Jquery包装集对象
                根据id属性获取DOM对象    $("#id属性值");
                如果元素存在那么直接获取jquery对象,如果元素不存在,值为空包装集对象 (不会是null)
                
                注意:
                    dom对象判断对象是否获取到,判断值是否为null
                    Jquery包装集对象判断对象是否获取到,判断jquery对象的长度length 

<script type="text/javascript">
			//dom
			var divDom = document.getElementById("div1");
			console.log(divDom);
			var divDom2 = document.getElementById("div2");
			console.log(divDom2);
			
			//jquery
			var divJquery = $("#div1");
			console.log(divJquery);
			var divJquery2 = $("#div2");
			console.log(divJquery2);
			
			//Dom转换成jquery对象
			var newDiv = $(divDom);
			console.log(newDiv);
			var str = "<div>123</div>";
			var newStr = $(str);
			console.log(newStr);
			
			//jquery对象转换成Dom
			var newDiv = divJquery[0];
			console.log(newDiv);
		</script>

基础选择器

id选择器                        #id$("#testDiv")选择id为testDiv的元素
元素名称选择器            element$("div")选择所有div元素
类选择器                       .class$(".blue")选择所有class=blue的元素
选择所有元素                $("*")选择页面所有元素
组合选择器                   selector1,selector2,selectorN$("#testDiv,span,.blue")同时选中多个选择器匹配的元素

<div id="mydiv1">id选择器1<span>span中的内容</span></div>
		<div id="mydiv2" class="blue">元素选择器</div>
		<span class="blue">样式选择器</span>
		<script type="text/javascript">
			//id选择器
			var mydiv1 = $("#mydiv1");
			console.log(mydiv1);
			
			//元素名称选择器
			var divs = $("div");
			console.log(divs);
			
			//类选择器
			var blue = $(".blue");
			console.log(blue);
			
			//选择所有元素
			var all = $("*");
			console.log(all);
			
			//组合选择器
			var zh = $("#mydiv1,div,.blue");
			console.log(zh);
		</script>

层次选择器

后代选择器ancestor descendant$("#parent div")选择id为parent的元素的所有div元素
子代选择器parent > child$("#parent>div")选择id为parent的直接div子元素
相邻选择器prev + next$(".blue + img")选择css类为blue的下一个img元素
同辈选择器prev ~ sibling$(".blue ~ img")选择css类为blue的之后的img元素
<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>
		<script type="text/javascript">
			//后代选择器
			var hd = $("#parent div");
			console.log(hd);
			
			//子代选择器
			var zd = $("#parent > div");
			console.log(zd);
			
			//相邻选择器
			var xl = $(".testColor + div");
			console.log(xl);
			
			//同辈选择器
			var tb = $(".gray ~ img");
			console.log(tb);
		</script>

表单选择器

$("[属性]");               选中页面中具备某样属性的元素
$("[属性 = 值]");       选中页面中具备属性等于某个特定值的元素

表单元素选择器:input 查找所有的input元素:$(":input");<br />注意:会匹配所有的input、textarea、select和button元素。
文本框选择器:text查找所有文本框:$(":text")
密码框选择器:password查找所有密码框:$(":password")
单选按钮选择器:radio查找所有单选按钮:$(":radio")
复选框选择器:checkbox查找所有复选框:$(":checkbox")
提交按钮选择器:submit 查找所有提交按钮:$(":submit")
图像域选择器:image查找所有图像域:$(":image")
重置按钮选择器:reset查找所有重置按钮:$(":reset")
按钮选择器:button 查找所有按钮:$(":button")
文件域选择器:file查找所有文件域:$(":file")

过滤选择器

$(":eq(index)")     匹配元素的指定下标的元素 (下标从0开始)  .eq(index)
$(":gt(index)")        匹配元素下标大于指定值元素 (下标从0开始).gt(index)
$(":odd")            匹配奇数下标
$(":even")            匹配偶数下标
$(":checked")        匹配元素被选中

            //匹配元素的指定下标的元素
			var eq = $("[type]:eq(1)");
			console.log(eq);
			
			//匹配元素下标大于指定值元素
			var eq = $("[type]:gt(8)");
			console.log(eq);
			
			//匹配奇数下标
			var hob = $("[name = 'ufav']:odd");
			//匹配偶数下标
			var even = $("[name = 'ufav']:even");
			console.log(hob);
			console.log(even);
			
			//匹配元素被选中
			console.log($(":input:checked"));

操作元素的属性

属性的分类
                固有的属性
                    src align method
                自定义的属性
                    abc='123'
                返回值是boolean类型的属性
                    checked disabled selected
                    
操作属性
                attr
                    获取已存在的属性,可以直接获取到具体的值,如果属性是boolean类型的也是一样 具体的值
                prop  (不能操作自定义属性)
                    获取已存在的属性,可以直接获取到具体的值,如果属性是boolean类型 返回的是true/false
                    
获取属性
                attr('属性名');
                prop('属性名');
                
设置属性
                attr('属性名','属性值');
                prop('属性名','属性值');
                
            
移除属性
                removeAttr(属性名)移除指定的属性

<form action="" id="myform">
			<input type="checkbox" id="aa" data='123' name="ch" checked="checked"/>	aa
			<input type="checkbox" id="bb" data='456' name="ch" />	bb
		</form>
		<script type="text/javascript">
			//获取元素
			var aa = $("#aa");
			var bb = $("#bb");
			
			//获取固有属性值
			console.log(aa.attr('type'),aa.attr('name'));
			console.log(aa.prop('type'),aa.prop('name'));
			
			//自定义的属性
			console.log(aa.attr('data'));//123
			console.log(aa.prop('data'));//undefined
			
			//返回值是boolean类型的属性
			console.log(aa.attr('checked'));//checked
			console.log(aa.prop('checked'));//true
			//不存在的属性
			console.log(bb.attr('checked'));//undefined
			console.log(bb.prop('checked'));//false
			
			//设置
			aa.attr("data","abc");
			bb.prop("checked",true);
			aa.attr("name",'input');
			
			//移除属性
			bb.removeAttr('name');
		</script>

操作元素的样式

attr(“class”)                    获取class属性的值,即样式名称
attr(“class”,”样式名”)            修改class属性的值,修改样式   直接覆盖原有的样式
addClass(“样式名”)                添加样式名称
css("样式名","样式值")            添加具体的样式   相当于在元素上添加style属性
removeClass(class)                移除样式名称

            //获取class属性的值
			var div1 = $("#conBlue").attr("class");
			console.log(div1);
			
			//修改class属性的值   直接覆盖原有的样式
			$("#conBlue").attr("class","green");
			
			//添加样式名称     
			$("#conBlue").addClass("larger");
			
			//添加具体的样式   相当于在元素上添加style属性
			$("#conRed").css("color","red");
			
			//removeClass  移除样式
			$("#remove").removeClass('larger');

操作元素的内容

html()                       获取元素的html内容
html("html,内容")     设定元素的html内容
text()                        获取元素的文本内容,不包含html
text("text 内容")       设置元素的文本内容,不包含html
val()                         获取元素value值
val(‘值’)                    设定元素的value值

            //获取非表单元素 的内容/值
			console.log($("h3").html());
			console.log($("h3").text());
			
			
			//设置非表单元素 的内容/值
			$("#html").html("<h2>标签内容</h2>");
			$("#text").text("<h2>标签内容</h2>");
			
			//val()
			console.log($("[name='uname']").val());
			
			$("[name='uname']").val("orm");

操作元素和添加元素

创建元素
                $('元素内容')
                
添加元素
                prepend(content)                 在被选元素内部的开头插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。
                $(content).prependTo(selector)   把 content 元素或内容加入 selector 元素开头
                append(content)                  在被选元素内部的结尾插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。
                $(content).appendTo(selector)    把 content元素或内容插入selector 元素内,默认是在尾部
                before()                         在元素前插入指定的元素或内容:$(selector).before(content)
                after()                          在元素后插入指定的元素或内容:$(selector).after(content)

            //prepend  内部前追加
			//准备元素
			var str = $('<span>UZI</span>');
			//将内容填充到<div class="green">的内部
			$(".green").prepend(str);
			
			//prependTo  被内部前追加
			var str2 = "<span>麻辣香锅</span>";
			$(str2).prependTo($(".green"));
			
			//append   内部后追加
			var str3 = "<span>厂长</span>";
			$(".green").append(str3);
			
			//appendTo   被内部后追加
			var str4 = "<span>faker</span>";
			$(str4).appendTo($(".green"));
			
			
			//before  前追加
			$("[class = 'red']").before("<span style='color:black'>卢本伟</span>");
			
			//after   后追加
			$("[class = 'red']").after("<span style='color:black'>姿态</span>");

删除元素

remove()       删除所选元素或指定的子元素,包括整个标签和内容一起删。

            var spans = $("span");
			spans.each(function(index,element){
				console.log(index,element);
				console.log($(element));
			});


empty()         清空所选元素的内容

            //remove()  移除
			$('.green').remove();
			
			//empty()   清空
			$('.blue').empty();

遍历元素

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

            var spans = $("span");
			spans.each(function(index,element){
				console.log(index,element);
				console.log($(element));
			});

jQuery事件

ready加载事件
            ​    ready()类似于 onLoad()事件
            ​    ready()可以写多个,按顺序执行
                ​       $(document).ready(function(){})
                       等价于
                       $(function(){})
                    
                ready加载事件和load加载事件的区别
                       load:等待加载页面中DOM结构(元素)和引入的资源后,执行对应代码
                       ready:等待加载页面中DOM结构(元素),执行对应代码
            
               绑定事件        
                       $(selector).bind( eventType [, eventData], handler(eventObject));

//load
			/* window.onload = function(){
				console.log("abc");
			} */
			
			//ready加载事件
			$(function(){
			    console.log($("#aa"));
			});
			
			/* $(document).ready(function(){
				console.log($("#aa"));
			}); */
			
			//bind绑定
			$("#aa").bind('click',function(){
				console.log('点击事件');
			});
			
			//bind绑定多个
			$("#bb").bind('mouseout',function(){
				console.log('移开事件');
			}).bind('mouseover',function(){
				console.log('悬停事件');
			});
			
			$("#cc").bind({
				'click':function(){
					console.log("点击事件");
				},
				'mousemove':function(){
					console.log("移动事件");
				}
			})
			
			//事件绑定的简洁使用方式
			$("#dd").click(function(){
				console.log("点击事件");
			})
			
			$("#dd").click(function(){
				console.log("点击事件");
			}).mouseover(function(){
				console.log("悬停事件");
			});

Ajax

ajax  异步无刷新技术
            
                $.ajax({
                    type:get/post,  请求方式
                    url:请求地址,
                    data:{
                        //参数
                        name:zhangsan,
                        pwd:123456
                    },
                    dataType:'json'    预期服务器返回的数据类型
                    success:function(abc){
                    }
                });
                
                $.get
                    $.get('地址',数据参数,回调函数);
                    
                $.post
                    $.post('地址',数据参数,回调函数);
                    
                $.getJSON
                    $.getJSON('js/cuisine_area.json',{name:"tom",age:100},function(data){
                        console.log(data); // 要求返回的数据格式是JSON格式
                    });

<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			//ajax请求
			$.ajax({
				type:'get',
				url:'js/data.json',
				data:{
					uname:'zhangsan'
				},
				dataType:'json',
				success:function(abc){
					console.log(abc);
				}
			});
			
			$.get("js/data.json",function(data){
				console.log(data);
			});
			
			$.getJSON('js/data.json',function(data){
				console.log(data); // 要求返回的数据格式是JSON格式
			});
		</script>

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值