有关于jqurey的开发

什么是jQuery

文件-偏好设置-编辑器-拼写检查-不使用拼写检查

先说说js的缺点

不能添加多个入口函数,如果有多个,都会一个一个的覆盖,并只执行最后一个。

原生JS的api名字太长,不好记

原生js中属性和方法对浏览器兼容性不好

原生js有时代码冗余

容错率低,前面的代码有错,后面的代码不能执行

jQuery就是一个封装了很多方法的js库

两种jQuery入口函数

	$(document).ready(function(){
	//	
	});
	$(function(){
	//	
	});

jQuery入口函数和window.onload入口函数的区别

1.window.onload入口函数不能写多个,但是jQuery的入口函数可以写多个

2.jQuery入口函数要快于window.onload,window.onload要等待全部资源加载完毕后执行

$是一个函数,传递的参数不同,效果也不一样

  • 传递的是一个匿名函数-入口函数

    $(function(){
    
    });
    
  • 传递的是一个字符串-选择器或创建一个标签

		//选择器
		$('#btn_one').click(function(){
			alert("123");
		});
       //创建一个标签
		var txt="<div>12345</div>";
		$("body").append(txt);
  • 如果参数是一个dom对象,那么他就会把dom对象转换成jQuery对象
		//dom对象就是原生js选择器获取到的对象
		<!--:<button id="one"/>-->
		var div1=document.getElementById("one");
		document.getElementsByTagName("div");
		-----------------------------------
       dom对象转成jQuery对象
        $(dom对象)
		var $div1=$(div1);
		var $div1=$('#one');
		-----------------------------------
       jQuery对象转换成dom对象
		

dom对象不能调用jQuery对象。

jQuery选择器不能调用原生jsdom属性方法

jQuery对象是一个伪数组,是dom对象的一个包装集

开关案例

jqure:

	$(function(){
		var btns=document.getElementsByTagName("button");
		//console.log(btns);
		btns[1].onclick=function(){
			$('body').css('backgroundColor','black');
		}
		btns[0].onclick=function(){
			$('body').css('backgroundColor','white');
		}
	});

body:

<body>
	<!--不使用id进行设置button-->
	<button>开</button>
	<button>关</button>
</body>

两种设置css的方式

$(function(){
		$('#btn_one').click(function(){
			$('#div_01').css('width',300);
			$('#div_01').css('height',300);
			$('#div_01').css('backgroundColor','red');
		});
		$('#btn_two').click(function(){
			$('#div_01').css({
				width:300,
				height:300,
				backgroundColor:'red'
			});
		});
	});

jQuery基本选择器

在这里插入图片描述

id选择器

在这里插入图片描述

标签选择器

在这里插入图片描述

类选择器

在这里插入图片描述

并集选择器

在这里插入图片描述

交集选择器

在这里插入图片描述

jQuery层级选择器

在这里插入图片描述

获取id为father的所有div及子标签p

不可以‘#father>div,p’ ,这样获取的p是整个body里面的p

在这里插入图片描述

jQuery过滤选择器

在这里插入图片描述

$(function(){
		$('li:odd').css('backgroundColor','skyblue');
		$('li:even').css('backgroundColor','pink');
		//收尾两行为红色
		$('li:eq(0)').css('backgroundColor','red');
		$('li:eq(4)').css('backgroundColor','red');
	});

在这里插入图片描述

jQuery筛选选择器(方法)

在这里插入图片描述

下拉菜单案例

mouseover事件在鼠标移动到选取的元素及其子元素上是触发

mouseenter事件只在鼠标移动到选取的元素上时触发

mouseout事件在鼠标离开选取元素时触发

mouseleave

建议使用mouseenter和mouseleave

css

		<style type="text/css">
			ul {
			    list-style: none;
			}
			.wrap li ul {
			    position: absolute;
			    top: 30px;
			    display: none; //设置隐藏
			}
		</style>

html

<div class="wrap">
    <ul>
        <li>
            <a href="javascript:void(0);">一级菜单1</a>
            <ul>
                <li><a href="javascript:void(0);">二级菜单1</a></li>
                <li><a href="javascript:void(0);">二级菜单2</a></li>
                <li><a href="javascript:void(0);">二级菜单3</a></li>
            </ul>
        </li>
   </div> 

js

$(function(){
	  //!!!不要给a设置事件,要用ul里面的li,包括了a和子li
	  //鼠标移入事件
	 $('.wrap>ul>li').mouseenter(function(){
		//让二级菜单显示
		//this是当前一级菜单,这里的this是dom对象
		//$(this).children('ul').css('display','block');
		$(this).children('ul').stop(true,false).show();//show()方法本质上就是把display属性为block
	 });
	  $('.wrap>ul>li').mouseleave(function(){
		$(this).children('ul').stop(true,false).hide(); //hide相当于display:none
	  });
  });

透明度opacity

$('li').css('opacity',0.4);//设置li透明度为0.4

遍历

在这里插入图片描述

手风琴案例

js

 $(function () {
        //需求:点击标题li标签,对应的div显示, 他的兄弟标签li下面的div隐藏.
	$('.parentWrap>.menuGroup').click(function(){
		$(this).children('div').show().parent().siblings('li').children('div').hide();
		});
    });

Class类操作

添加类

addClass

    .bgc {
      background-color: green;
    }    
	.fontSize30 {
      font-size: 30px;
    }
    .width200 {
      width: 200px;
    }
<input type="button" value="添加类" id="addClass"/>
	$('#addClass').click(function(){//设置div字体30宽200
		$('#div1').addClass('fontSize30 width200');
	});

移除类

removeClass

<input type="button" value="移除类" id="removeClass"/>
 $('#removeClass').click(function(){
	 // $('#div1').removeClass('fontSize30');
	  $('#div1').removeClass();//删除全部样式
   });

判断类

hasClass

判断一个元素是否有某个类,有true没有flase

   $('#hasClass').click(function(){
	 console.log($('#div1').hasClass('fontSize30')); 
   });

切换类

toggleClass

如果元素有某个类就移除,没有就添加

   $('#toggleClass').click(function(){
	  $('#div1').toggleClass('fontSize30'); 
   });

动画

三组基本动画

 $(function () {
    //1.显示 show();
		$('#show').click(function(){
			$('#div1').show(1000);
		});
    //2.隐藏
   $('#hide').click(function(){
	  $('#div1').hide(1000); 
   });
    //3.切换 toggle
   $('#toggle').click(function(){
	  $('#div1').toggle(1000); 
   });
  });

slideUp向上隐藏

slideDown向下显示

fadeIn淡入

fadeOut淡出

fadeToggle淡入淡出切换

fadeTo淡入淡出到一定程度

$('#div1').fadeTo(1000,0.5);//将颜色透明度变为0.5

自定义动画

animate()

参数1:必选 对象需要做的动作

参数2:可选 对象执行的时间

参数3:可选 匀速还是缓动 linear(匀速) swing(缓动),默认缓动

参数4:动画执行完毕后的回调函数

例子:

			#div1{
				width: 100px;
				height: 100px;
				background-color: #00FFFF;
				position: absolute;<!--不设置的话宽度是100%-->
                left: 0px;
				top: 100px;
			}
		<div id="div1"></div>
		<button id="button1">123</button>
	$(function(){
		$('#button1').click(function(){
			$('#div1').animate({
				left:"300px"
			},1000,'linear',function(){
				alert(123);
			});
		});
	});

stop方法

参数1:是否清除队列 为false的时候会走完一遍流程

参数2:是否跳转到最终效果 为true的时候如果执行一半的时候跳转到最终结果

两个都是布尔类型,默认两个都是false

节点

创建节点

$('#btn2').click(function(){
	alert(123);
	var $link=$('<a href="http://www.baidu.com/">百度</a>');
	console.log($link);
	$('body').append($link);
});

html()与$()的不同

html()会把关于他的代码全部执行一遍,再次点击会掩盖上一次的数据

$()每一次执行都会增加一次

添加节点方法

  //1.append()
    //父元素.append(子元素); //作为最后一个子元素添加.
    $('#btnAppend').click(function () {
      //1.1 新创建一个li标签,添加到ul1中的去.
      // var $liNew = $("<li>我是新创建的li标签</li>");
      // $('#ul1').append($liNew);
  //1.2 把ul1中已经存在的li标签添加到ul中去. 剪切后作为最后一个子元素添加.
  // var $li3 = $('#li3');
  // $('#ul1').append($li3);

  //1.3 把ul2中已经存在的li标签添加到ul1中去.剪切后作为最后一个子元素添加.
  var $li32 = $('#li32');
  $('#ul1').append($li32);
});


//2.prepend();
//父元素.prepend(子元素); //作为第一个子元素添加.
$('#btnPrepend').click(function () {
  //2.1 新建一个li标签,添加到ul1中去.
  // var $liNew = $("<li>我是新创建的li标签</li>");
  // $('#ul1').prepend($liNew);

  //2.1 把ul1中已经存在的li标签添加到ul1中去. 剪切后作为第一个子元素添加.
  // var $li3 = $('#li3');
  // $('#ul1').prepend($li3);

  //2.2 把ul2中已经存在的li标签添加到ul1中去. 剪切后作为第一个子元素添加.
  var $li32 = $('#li32');
  $('#ul1').prepend($li32);
});


//3.before()
//元素A.before(元素B); //把元素B插入到元素A的前面,作为兄弟元素添加
$('#btnBefore').click(function () {
  //新建一个div
  var $divNew = $('<div>我是新建的div</div>');
  $('#ul1').before($divNew);
});

//4.after();
//元素A.after(元素B); //把元素B插入到元素A的后面,作为兄弟元素添加.
$('#btnAfter').click(function () {
  //新建一个div
  var $divNew = $('<div>我是新建的div</div>');
  $('#ul1').after($divNew);
});


//5.appendTo();
//子元素.appendTo(父元素); //把子元素作为父元素的最后一个子元素添加.
$('#btnAppendTo').click(function () {
  //5.1 新建一个li标签,添加到ul1中去.
  var $liNew = $("<li>我是新创建的li标签</li>");
  $liNew.appendTo($('#ul1'));

});

选中

:selected

清除节点

清空元素

错误实例

$('#ul1').html("");//不推荐使用,因为不安全,可能会造成内存泄露

推荐方式

$('#ul1').empty();//推荐使用方式

清除子元素

清空元素

$('#li2').empty();

在这里插入图片描述

移除某一元素

$('#li2').remove();

在这里插入图片描述

移除一个元素的父元素

$('#li2').parent().empty();

属性操作

attr

设置属性

如果有这个属性就替换属性,没有就添加

$('img').attr('src','992.gif');

修改多个属性

		$('img').attr({
			src:'992.gif',
			aaa:'123'
		});
	});

获取属性

console.log($('img').attr('src'));

removeAttr

移除属性

$('img').removeAttr('alt');

prop

checked、selecked、disabled这类boolean类型属性来说,不能用attr方法,只能使用prop方法

console.log($('#check').prop('checked'));

事件对象

注册一个事件,系统就会帮我们生成一个对象记录这个事件触发时候的一些信息

event可以用e代替

event.altKey:true 是否被按下并保持住(按住了某个键)

e.screenX 距离屏幕的水平坐标

e.clientX 可视区

e.pageY 距离页面左上角 (不变)

阻止事件冒泡

e.stopPropagation();

	$('#btn_01').on('click',function(e){
		alert('1');
		e.stopPropagation();
	});
	$('.div01').on('click',function(e){
		alert('2');
	});

组织a标签跳转

e.preventDefault()

return false ==e.preventDefault()+e.stopPropagation();

键盘代码

event.keyCode 按下的键盘代码

  var $div = $('#bgChange');
  //获取显示按键的span
  var $showCode = $('#keyCodeSpan');

  //给页面注册一个键盘按下事件.
  $(document).on('keydown', function (e) {
      //console.log(e.keyCode); //r 82   g 71   b 66   p 80   y 89
      switch (e.keyCode){
          case 82:
              $div.css('backgroundColor','red');
              $showCode.text(82);
              break;
          case 71:
              $div.css('backgroundColor','green');
              $showCode.text(71);
              break;
          case 66:
              $div.css('backgroundColor','blue');
              $showCode.text(66);
              break;
          case 80:
              $div.css('backgroundColor','purple');
              $showCode.text(80);
              break;
          case 89:
              $div.css('backgroundColor','yellow');
              $showCode.text(89);
              break;
          default :
              $div.css('backgroundColor','pink');
              $showCode.text("查无此键");
              break;
      }
  });

prev()上一个兄弟

prevAll()定位当前元素 之前的所有兄弟元素

nextAll() 之后所有的兄弟

创建新的标签和名字

attr(,);

$(this).attr('new','new').siblings().removeAttr('new');
//给当前元素创建一个属性new,名字为new,去除其他兄弟节点的new属性

JQuery的父、子、兄弟节点查找方法

jQuery.parent(expr) //找父元素

jQuery.parents(expr) //找到所有祖先元素,不限于父元素

jQuery.children(expr) //查找所有子元素,只会找到直接的孩子节点,不会返回所有子孙

jQuery.contents() //查找下面的所有内容,包括节点和文本。

jQuery.prev() //查找上一个兄弟节点,不是所有的兄弟节点

jQuery.prevAll() //查找所有之前的兄弟节点

jQuery.next() //查找下一个兄弟节点,不是所有的兄弟节点

jQuery.nextAll() //查找所有之后的兄弟节点

jQuery.siblings() //查找兄弟节点,不分前后

jQuery.find(expr) //跟jQuery.filter(expr)完全不一样,jQuery.filter(expr)是从初始的

​      jQuery对象集合中筛选出一部分,而jQuery.find()的返回结果,不会有初始集中

​      筛选出一部分,比如:

​     ( " p " ) . f i n d ( " s p a n " ) 是 从 元 素 开 始 找 , 等 于 ("p").find("span")是从元素开始找,等于 ("p").find("span")(“p span”)

链式编程

如果给元素调用一个方法,这个方法有返回值,并且返回值是一个jquery对象,那就可以继续再点出jQuery方法

end()

回到上一个状态

$('.comment>li').on('mouseenter',function(){
		//$(this).text(hei).prevAll().text(hei);
		//$(this).nextAll().text(bai);
		$(this).text(hei).prevAll().text(hei).end().nextAll().text(bai);
	});

遍历jquery对象

each()

var $lis=$('#ulList').children();
//console.log($lis);
$lis.each(function(index,element){
	$(element).css('opacity',((index+1)/10));

获取jquery版本

console.log($.fn.jquery);

css常用

        position: fixed;/*对于屏幕定位*/
        bottom: 0;
        right: 0;/*右下角定位*/
        overflow: hidden;/*元素内容移除会变成滚动条*/

显示 .show()

隐藏 .hide()

防止页面跳转 return false(如果有超链接时使用)

两种居中方法

		position: fixed;
		bottom: 50%;
		left: 50%;
			margin: 100px auto 0;

回到上一个状态

$('.comment>li').on('mouseenter',function(){
		//$(this).text(hei).prevAll().text(hei);
		//$(this).nextAll().text(bai);
		$(this).text(hei).prevAll().text(hei).end().nextAll().text(bai);
	});

遍历jquery对象

each()

var $lis=$('#ulList').children();
//console.log($lis);
$lis.each(function(index,element){
	$(element).css('opacity',((index+1)/10));

获取jquery版本

console.log($.fn.jquery);

css常用

        position: fixed;/*对于屏幕定位*/
        bottom: 0;
        right: 0;/*右下角定位*/
        overflow: hidden;/*元素内容移除会变成滚动条*/

显示 .show()

隐藏 .hide()

防止页面跳转 return false(如果有超链接时使用)

两种居中方法

		position: fixed;
		bottom: 50%;
		left: 50%;
			margin: 100px auto 0;

本人前端小白,如有错误请大家指正,一起学习!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值