jquery加载方式,选择器,样式操作
原生js和css不兼容,jquery已经过测试,可放心使用
https://code.jquery.com 这个网站可以下载jquery的源码,比如把源码下载到js文件夹中,文件名为jquery-1.12.4.min.js ,有min字样的是精简版的
一. 比较原生的和jquery的用法
例子1,页面弹出<div>元素中的文本
<head> <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script> #先导入库 <script type="text/javascript"> #再来一个<script>标签来用jquery库 #原生js的方法 window.onload = function() { var oDiv = document.getElementById('div'); alert(oDiv.innerHTML); } #Jquery的方法 $(document).ready(function() { var $div = $('#div'); 其中#div和css中的ID选择器一样 alert($div.html() + 'test'); #后面加test是为了和原生的做区分 }); </script> </head> <body> <div id="div">这是一个div元素</div> </body>
注意:
1. 刷新页面后,会首先弹出jquery的文本:"这是一个div元素test" ,然后才会弹出原生的,原因是因为window.onload需要等网页中所有元素加载完,并且经过渲染后才会执行里面的代码;而jquery中的ready函数只需要页面中元素加载完就可以执行里面的代码,不需要经过渲染。
2. $(document).ready(function(){....})可以简写成$(function(){...})
二. jquery选择器
jquery用法思想一
选择某个网页元素,然后对它进行某种操作
1. jquery选择器可以快速地选择元素,选择规则和css样式相同,使用length属性判断是否选择成功。
$(document) //选择整个文档对象 $('li') //选择所有的li元素 $('#myId') //选择id为myId的网页元素 $('.myClass') // 选择class为myClass的元素 $('input[name=first]') // 选择name属性等于first的input元素 $('#ul1 li span') //选择id为为ul1元素下的所有li下的span元素
2. 对选择集进行修饰过滤(类似CSS伪类)
$('#ul1 li:first') //选择id为ul1元素下的第一个li $('#ul1 li:odd') //选择id为ul1元素下的li的奇数行 $('#ul1 li:eq(2)') //选择id为ul1元素下的第3个li $('#ul1 li:gt(2)') // 选择id为ul1元素下的前三个之后的li $('#myForm :input') // 选择表单中的input元素 $('div:visible') //选择可见的div元素
3. 对选择集进行函数过滤
$('div').has('p'); // 选择包含p元素的div元素 $('div').not('.myClass'); //选择class不等于myClass的div元素 $('div').filter('.myClass'); //选择class等于myClass的div元素 $('div').first(); //选择第1个div元素 $('div').eq(5); //选择第6个div元素
4. 选择集转移
$('div').prevAll('p'); //选择div元素前面的第一个p元素 $('div').nextAll('p'); //选择div元素后面的第一个p元素 $('div').closest('form'); //选择离div最近的那个form父元素 $('div').parent(); //选择div的父元素 $('div').children(); //选择div的所有子元素 $('div').siblings(); //选择div的同级元素 $('div').find('.myClass'); //选择div内的class等于myClass的元素
注意:
next() 同级的下一个元素,nextAll()表同级的下面所有的元素
prev() 同级的上一个元素,prevAll()表同级的上面所有的元素 例子1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jquery 选择器</title> <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script> <script type="text/javascript"> $(function(){ $('#div1').css({color:'pink'}); #修改原css样式的方法 $('.box').css({fontSize:'30px'}); #fontSize要写成驼峰式 $('.list li').css({background:'green',color:'#fff',fontSize:'20px'}); }); </script> <style type="text/css"> #div1{ color:red; } .box{ color:green; } .list li{ margin-bottom:10px; } </style> </head> <body> <div id="div1">这是一个div元素</div> <div class="box">这是第二个div元素</div> <ul class="list"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> </ul> </body> </html>
例子2,验证选择集转移
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(function(){
// next() 同级的下一个元素,nextAll同级的下面所有的元素
// prev() 同级的上一个元素,prevAll同级的上面所有的元素
$('#div1').nextAll('p').css({color:'red'});
//选择上一级的父元素
$('#span01').parent().css({width:'100px',height:'100px',background:'gold'});
//选择离最近的元素,元素可以是父级,可以是子集,closest()常用于多层标签结构中
$('#span02').closest('div').css({width:'200px',height:'200px',background:'pink'});
// $('.list li'):不能回到父级
// $('.list').children():可以通过end() 回到父级; mairginBottom为每一个<li>设置外边距以便区分
$('.list').children().css({background:'gold',height:'30px',marginBottom:'10px'}).end().css({background:'green'});
//验证$('.div').siblings(),eq(2)表示第3个<li>,作用就是把第3个<li>背景设为gold, 其他的<li>为green
$('.list2 li:eq(2)').css({background:'gold'}).siblings().css({background:'green'});
//验证$('.div').find(),找到<div2>中的<a>标签,设置里面的字体颜色
$('#div2').find('.link1').css({color:'red'});
})
</script>
</head>
<body>
<div id="div1">这是一个div元素</div>
<div>这是第二个div元素</div>
<p>这是一个p元素</p>
<div>
<a href="#">百度网</a>
<span id="span01">span元素</span>
</div>
<div id="div2">
<p>
<a href="#" class="link1">腾讯网</a>
<span id="span02">span元素</span>
</p>
</div>
<ul class="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>
<ul class="list2">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</body>
</html>
三. 样式操作
jquery用法思想二
同一个函数完成取值和赋值
1. 操作行间样式
// 获取div的样式 $("div").css("width"); $("div").css("color"); //设置div的样式 $("div").css("width","30px"); $("div").css("height","30px"); $("div").css({fontSize:"30px",color:"red"});
特别注意
选择器获取的多个元素,获取信息获取的是第一个,比如:$("div").css("width"),获取的是第一个div的width。
2. 操作样式类名
$("#div1").addClass("divClass2") //为id为div1的对象追加样式divClass2 $("#div1").removeClass("divClass") //移除id为div1的对象的class名为divClass的样式 $("#div1").removeClass("divClass divClass2") //移除多个样式 $("#div1").toggleClass("anotherClass") //重复切换anotherClass样式
例子1, 上面的jquery操作都是设置样式,那么怎么读取原先样式的属性呢
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script> <script type="text/javascript"> $(function(){ // 读取样式,获取字体大小 alert( $('.div1').css('fontSize') ); // 设置样式(写入) $('.div1').css({background:'gold'});
//为.div1追加样式big $('.div1').addClass('big');
//去除div1样式 $('.div1').removeClass('div1'); }) </script> <style type="text/css"> .big{ font-size:30px; } </style> </head> <body> <div class="div1">这是一个div元素</div> </body> </html>
努力生活,融于自然