jQuery是一个兼容多浏览器的JavaScript库,提供一些可直接调用的方法,这些方法就是对JavaScript进行了封装。
这些方法主要分为两大类:查找和操作
介绍几个目前了解的(文章中的元素和标签是一个意思):
查找:
1、选择器:用来查找页面元素
2、筛选:用来对查找到的元素进行过滤或进行关系查找(找亲戚)
操作:
3、属性:获取或添加元素的属性
4、CSS:修改元素的样式和属性
具体使用方式用例子来说明:
1、选择器
例子说明:由于此例只是为了说明各种查找方法的使用,所以看代码即可,没有运行的必要。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="d1"> <span>span_test</span> <p>p_test</p> <p class="c1">p_class_test</p> <input name="i1" type="checkbox"/> <input type="text"/> <ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> </ul> </div> <script src="/jquery-2.2.0.js" type="text/javascript"></script> //加载jQuery文件 <script type="text/javascript"> //console.log() 方法的作用是把传入的值在浏览器的console控制台中打印出来 console.log($(‘#d1‘)); //查找id为d1的元素 console.log($(‘span‘)); //查找元素名称是span的元素 console.log($(‘.c1‘)); //查找class=c1(应用了c1类)的元素 console.log($(‘div,span,p.c1‘)); //查找元素名称是div、sapn和应用了c1类的p标签 console.log($(‘div input‘)); //查找div下的input元素 console.log($(‘li:first‘)); //查找所有li元素并只取第一个 console.log($(‘p:contains("test")‘)); //查找所有包含文本test的p元素 console.log($(‘input[name="i1"]‘)); //查找所有input元素中name=i1的元素 console.log($(‘input:text‘)); //查找所有input元素中类型是text的元素 console.log($(‘input:checked‘)); //查找所有input元素中属性是checked的元素 </script> </body> </html>
2、筛选
例子说明:此例需要一边运行看结果,一边结合代码来看。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表格修改</title> <style> .modal{ position: fixed; left: 50%; top: 50%; width: 400px; height: 300px; background-color: #dddddd; margin-left: -200px; margin-top: -150px; } .hidden{ display: none; } </style> </head> <body> <div id="dialog" class="modal hidden"> <!--模态对话框,默认是隐藏的--> <div style="margin: 10px"> <form action="" method="get"> <p>HOST:<input type="text" id="hostname"></p> <p>IP:<input type="text" id="ip"></p> <p>PORT:<input type="text" id="port"></p> <input type="submit" onclick="return GetValue();" value="提交"> <input type="button" onclick="Cancel();" value="取消"> </form> </div> </div> <div> <table border="1"> <thead> <tr> <th>主机名</th> <th>IP</th> <th>端口</th> </tr> </thead> <tr> <td>www</td> <td>1.1.1.1</td> <td>80</td> <td><input type="button" onclick="get_prev(this);" value="编辑"></td> </tr> <tr> <td>bbs</td> <td>2.2.2.2</td> <td>80</td> <td><input type="button" onclick="get_prev(this);" value="编辑"></td> </tr> </table> </div> <script type="text/javascript" src="/jquery-2.2.0.js"></script> <script type="text/javascript"> function get_prev(arg){ var list = []; //定义一个空数组 var c = $(arg).parent().siblings(); //找到当前标签的父标签的所有兄弟标签(找叔叔),得到一个数组c $.each(c,function(i){ //循环得到的数组c,对每个值都执行以下函数代码块 var item = $(arg).parent().siblings()[i]; //取出数组c中的每个元素 var text = $(item).text(); //得到元素的文本内容 list.push(text); //把得到的值写入数组中 }); var newlist = list.reverse(); //反转数组得到一个新数组 //把数组中的值依次赋予模态对话框中 $(‘#hostname‘).val(newlist[0]); $(‘#ip‘).val(newlist[1]); $(‘#port‘).val(newlist[2]); //去除模态对话框的隐藏样式(这是属性类别中方法) $(‘#dialog‘).removeClass(‘hidden‘); } function Cancel(){ //找到模态对话框并增加新样式,实现隐藏(这是属性类别中方法) $(‘#dialog‘).addClass(‘hidden‘); } function GetValue(){ var ret = true; //定义一个函数返回值 var t = $(‘#dialog‘).find(‘:text‘); //找到id为dialog标签下面的所有input类型为text的元素 $(t).each(function(){ //循环找到的数组(列表) var value = $(this).val(); //获取循环到的元素的值(注意是值,不是文本内容) if(value.trim().length == 0){ //去除获取到值的空格后判断是否为空 $(this).css(‘border-color‘,‘red‘); //若为空,则改变Input的样式 ret = false; } }); return ret; //函数返回值,如果是false,则不允许提交 } </script> </body> </html>
3、属性
例子说明:用经典的全选按钮来说明用法。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>全选按钮</title> </head> <body> <div> <input type="button" onclick="Select();" value="全选"> <input type="button" onclick="Reverse();" value="反选"> <input type="button" onclick="Cancel();" value="不选"> <table border="1" id="tb1"> <thead></thead> <tbody> <tr> <td><input type="checkbox"><b>1</b></td> </tr> <tr> <td><input type="checkbox"><b>2</b></td> </tr> <tr> <td><input type="checkbox"><b>3</b></td> </tr> </tbody> </table> </div> <script type="text/javascript" src="/jquery-2.2.0.js"></script> <script type="text/javascript"> function Select(){ //$(‘#tb1‘) 找到id为tb1的元素 //.find(‘:checkbox‘) 该元素下所有类型为checkbox的input元素 //.prop(‘checked‘,true) 并添加属性checked=true $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,true); } function Reverse(){ //反选函数的作用是:选中的变成不选中,不选中的变成选中 $(‘#tb1‘).find(‘:checkbox‘).each(function(){ //找到id为tb1标签下所有的类型为checkbox的元素进行循环 var content = $(this).next(); //查找被循环元素的下一个元素 console.log($(content).text()); //获取该元素的文本内容 if($(this).prop(‘checked‘)){ //判断是否已经选中:this代表的就是正在被循环的元素,获取其checked属性的值 $(this).prop(‘checked‘,false); //为该元素添加属性 $(content).text(‘选中的变成不选中‘); //修改该元素的文本内容 }else{ $(this).prop(‘checked‘,true); $(content).text(‘不选中的变成选中‘); } }) } function Cancel(){ $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,false); //添加属性checked=false,也就是不选中 } </script> </body> </html>
4、CSS
例子说明:使用大多数网站都有用到的“回到顶部”按钮来举例。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>这是顶部</h1><input type="button" style="position: fixed;right: 30px;top: 30px" onclick="GoBottom();" value="返回底部"/> <div id="d1" style="height: 2000px;background-color: blue"></div> <h1>这是底部</h1><input type="button" style="position: fixed;right: 30px;bottom: 30px" onclick="GoTop();" value="返回顶部"/> <script src="/jquery-2.2.0.js" type="text/javascript"></script> <script type="text/javascript"> /* scrollTop用法: 读取:$("选择器").scrollTop() //获取当前滚动条距离选择器顶部距离 设置:$("选择器").scrollTop(1000) //设置滚动条距离选择器顶部距离为1000px; 其他知识点: $(window).height(); //获取当前浏览器可视部分的高度,也就是说在浏览器窗口改变大小时,这个值也会改变; $(document).height(); //获取整个页面的高度(包含不可视部分),这个值是固定的,不会随浏览器窗口大小而改变; */ function GoTop(){ $(document).scrollTop(0); //设置滚动条距离当前页面顶部的距离为0,也就达到返回顶部的效果 var bcolor = $(‘#d1‘).css(‘background-color‘); //获取id为d1的元素的background-color样式属性的值 console.log(bcolor); $(‘#d1‘).css(‘background-color‘,‘blue‘); //设定id为d1的元素的background-color样式属性的值为green } function GoBottom(){ var dpx = $(document).height(); //获取当前页面的高度 var wpx = $(window).height(); //获取当前浏览器窗口的高度 console.log(dpx); console.log(wpx); $(window).scrollTop(dpx); //设置滚动条距离当前页面顶部的距离为当前页面的高度,也就达到返回底部的效果 $(‘#d1‘).css(‘background-color‘,‘green‘); } </script> </body> </html>
本文出自 “一行菜鸟上青天” 博客,请务必保留此出处http://rmeos.blog.51cto.com/761575/1744418
原文:http://rmeos.blog.51cto.com/761575/1744418