最近在公司做项目的过程中,涉及到写前端部分,因为之前一直很少写前端,所以不是很熟悉,所以,在此写一下自学jQuery的过程,以及中途遇到的坑。
首先,要想使用jQuery必须先引入jQuery
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> /* alert(222) window.onload = function(){ //window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 //如果不写window.onload() 代码的执行顺序 从上到下 var oDiv = document.getElementById('box'); console.log(oDiv); } */ </script> <div id="box"> </div> </body> <script src="./jquery-3.2.1.js"></script> <script type="text/javascript"> //如果没有引入jquery :$ is not defined console.log($) //jquery是js的一个库文件,既然是库文件,那么就会抛出来一个构造函数或者对象 //$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕 //书写jquery的方式 入口函数 $(document).ready(function(){ alert(111) }) //等价 $(function(){ alert(222); }) </script> </html>
对,没错,就上面那个<script src="./jquery-3.2.1.js"></script>那个
如果说没有引入jQuery使用$就会报错,没有定义,如上面的代码。
$(document).ready(function(){
alert(111)
})
这个一般用在初始化界面的时候调用,比如修改内容的时候,原来什么东西是隐藏的,就用这个,因为他是从页面加载的时候就存在的。
而下面的$(function){})就是上面的简写方式。
——————————————————————————————————————————————————————————————————————
下面是jQuery的选择器:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> /*#brother{ color: red; font-size:24px; }*/ </style> </head> <body> <ul> <li id="brother">你大爷1</li> <li><a href="https://www.luffycity.com">你大爷2</a></li> <li class="li3">你大爷3</li> <li>你大爷4</li> <li>你大爷5</li> </ul> </body> <script src="jquery-3.2.1.min.js"></script> <script type="text/javascript"> //使用jquery的时候 要有入口函数 回调函数 $(document).ready(function(){ //基础选择器 //1.id选择器 console.log($('#brother')); $('#brother').css('color','red'); //2.标签选择器 //设置一个值 // $('a').css('color','yellow') // 设置多个值 设置多个值得时候使用对象存储 key:value $('a').css({'color':'yellow','font-size':'24px'}); //3.类选择器 $('.li3').css('background','green'); //4.通配符选择器 * 使用不是很频繁 console.log($('*')); //清空整个界面的dom元素 $('*').html(''); }) </script> </html>
选择器的种类如上所示:分为ID选择器,标签选择器,类选择器,通配符选择器;当然这些是一种基础类型的选择器。
所需要注意的是,当一个选择器想要设置多个元素的时候采用{}的形式。
$('a').css('color','yellow')单个
$('.li3').css('background','green');
$('a').css({'color':'yellow','font-size':'24px'});多个
下面是层级选择器的使用方法:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> /*#brother{ color: red; font-size:24px; }*/ </style> </head> <body> <ul> <li id="brother">你大爷1</li> <li><a href="https://www.luffycity.com">你大爷2</a></li> <li class="li3">你大爷3</li> <li>你大爷4</li> <li>你大爷5</li> </ul> <div id="box"> <p id="father">天王盖地虎</p> <p>我是你老母</p> <p>宝塔镇河妖</p> <p>蘑菇放香蕉</p> <div id="box2"> <p>小鸡炖蘑菇</p> </div> </div> </body> <script src="jquery-3.2.1.min.js"></script> <script type="text/javascript"> //使用jquery的时候 要有入口函数 回调函数 $(document).ready(function(){ //1.后代选择器 div p $('#box p').css('color','red'); //2.子代选择器 div > p $('#box>p').css('color','yellow') //3.毗邻选择器 匹配素所有紧接着选中元素的兄弟 + $('#father+p').css('font-size','30px'); //4.兄弟选择器 ~ $('#father~p').css('background','blueviolet'); console.log($('li')); //5.获取第一个元素 $('li:first').css('font-size','50px'); //6.获取最后一个元素 $('li:last').css('font-size','50px'); $('li:eq(3)').css('font-size','50px'); }) </script> </html>
子代选择器('div>p ')和后代选择器('div p')的最大区别就是在于子代是只选择儿子辈,后代是子子孙孙无穷尽。
而兄弟选择器('#father~p')和毗邻选择器('#father+p')最大区别在于兄弟是选择同一层级下的所有,而毗邻只是同一层级下的一个。
而
$('li:eq(3)').css('font-size','50px');
用的最多
属性选择器:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="box"> <h2 class="title">属性元素器</h2> <!--<p class="p1">我是一个段落</p>--> <ul> <li id="li1">分手应该体面</li> <li class="what" id="li2">分手应该体面</li> <li class="what">分手应该体面</li> <li class="heihei">分手应该体面</li> </ul> <form action="" method="post"> <input name="username" type='text' value="1" checked="checked"></input> <input name="username1111" type='text' value="1"></input> <input name="username2222" type='text' value="1"></input> <input name="username3333" type='text' value="1"></input> <button class="btn-default">按钮1</button> <button class="btn-info">按钮1</button> <button class="btn-success">按钮1</button> <button class="btn-danger">按钮1</button> </form> </div> </body> <script src="jquery-3.2.1.js"></script> <script type="text/javascript"> $(function(){ // 标签名[属性名] 查找所有含有id属性的该标签名的元素 $('li[id]').css('color','red'); //匹配给定的属性是what值得元素 $('li[class=what]').css('font-size','30px'); //[attr!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素 $('li[class!=what]').css('font-size','50px'); // 匹配给定的属性是以某些值开始的元素 $('input[name^=username]').css('background','gray'); //匹配给定的属性是以某些值结尾的元素 $('input[name$=222]').css('background','greenyellow'); //匹配给定的属性是以包含某些值的元素 $('button[class*=btn]').css('background','red') }) </script> </html>
筛选选择器:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="box"> <p class="p1"> <span>我是第一个span标签</span> <span>我是第二个span标签</span> <span>我是第三个span标签</span> </p> <button>按钮</button> </div> <ul> <li class="list">2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </body> <script src="jquery-3.2.1.js"></script> <script type="text/javascript"> //获取第n个元素 数值从0开始 $('span').eq(1).css('color','#FF0000'); //获取第一个元素 :first :last 点语法 :get方法 和set方法 console.log($('span').last()); $('span').last().css('color','greenyellow'); console.log($('span').parent('.p1')) $('span').parent('.p1').css({"width":'300px',height:'400px',"background":'red'}); //.siblings()选择所有的兄弟元素 $('.list').siblings('li').css('color','red') //.find() //查找所有的后代元素 $('div').find('button').css('background','yellow') </script> </html>
筛选选择器的区别在于他是先选中之前的条件再去选择之后的条件:属于链式调用