<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function () { //选择器.跟css一样 .css()jq修改样式的方法 $(".hardTool").css("color", "pink");//调用jq的方法,jq内部循环 dom数组,这个叫做隐式迭代 //标签选择器 $("li").click(function () { alert("我被点击了" + this.innerHTML); }); $("#ComScreen").css({ "fontSize": "50px", "backgroundColor": "#0094ff", "fontFamily": "微软雅黑" }); }) </script> </head> <body> <ol> <li class="hardTool">固态硬盘</li> <li class="hardTool">机械键盘</li> <li id="ComScreen">视网膜显示屏</li> <li>水冷机箱</li> </ol> </body> </html>
$由来,自执行函数
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascript"> //自执行函数,---自动执行,括号外面访问不到, //用处,不让用户在不经意之间修改 //$符号的由来,jq往window对象里面注册的,$跟jquery对象用处一样 //(function (Name) { // alert(Name + "你好啊"); //})("金三胖"); // (function () { alert("123"); })(); //一般是写框架的时候用,防止用户重写 //就是将函数用括号括起来 //可以用匿名函数 (function (window) { window.sayHello = function () { alert("haha"); } })(window); say </script> </head> <body> </body> </html>
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> //注意,jq里面几乎都是方法,不需要用等号赋值,调用jq方法,传入实参,即可 //全局变量分割线---------------- var $liSelect = undefined; var $EditText = $("<input type='text' />"); //设置失去焦点事件 $EditText.blur(function () { if ($liSelect != undefined) { $liSelect.html($(this).val()); } }) //全局变量分割线---------------- //li标签 高亮选中 //设置为全局的是 为了在新增的时候,能够添加 function highSelect() { //将其他的li标签颜色还原 $("li").css("color", "black"); //将自己的变色 $(this).css("color", "pink"); //将自己存到全局变量中 $liSelect = $(this); } //01.dom树加载完毕 window.onload 页面资源加载完毕 $(function () { //---为li标签添加高亮选中的方法 $("li").click(highSelect); 1 //02.jq的id选择器--新增按钮 $("#btnAdd").click(function () { //弹出输入框 var userInput = window.prompt("请输入点心名", "比如叉烧鸡腿双拼"); //判断用户输入是否有效 if (userInput != null && userInput.trim() != "比如叉烧鸡腿双拼" && userInput.trim() != "") { //有效就创建li标签,--使用jq的创建dom元素方法,返回的是 jq对象 var $liCreate = $("<li>" + userInput + "</li>"); //将创建好的li标签追加到ol里面去 $liCreate.appendTo("#olList"); //简单写法 // $("<li>" + userInput + "</li>").appendTo("#olList"); //为新增的li标签设置点击事件 $liCreate.click(highSelect); } }) //03.为插入按钮,增加点击事件 $("#btnInsert").click(function () { if ($liSelect != undefined) { //弹出输入框 var userInput = window.prompt("请输入点心名", "比如叉烧鸡腿双拼"); //判断用户输入是否有效 if (userInput != null && userInput.trim() != "比如叉烧鸡腿双拼" && userInput.trim() != "") { //有效就创建li标签,--使用jq的创建dom元素方法,返回的是 jq对象 var $liCreate = $("<li>" + userInput + "</li>"); //将创建好的li标签插入到指定位置 //insertBefore可以传,jq对象,选择器,dom对象,不能为空 $liCreate.insertBefore($liSelect); //$liCreate.insertBefore(); //为创建好的li标签设置点击事件 $liCreate.click(highSelect); } } else { alert("哥们,先选中"); } }); //04.为删除按钮,增加点击事件 $("#btnRemove").click(function () { //判断 是否选中了li标签 if ($liSelect != undefined) { //jq里面可以自删 $liSelect.remove(); //将删除的元素置空 $liSelect = undefined; } }) //05.为编辑按钮,增加点击事件 //.val()可以设置,或者获取单标签的value字<a href="jquery/">jquery/</a> $("#btnEdit").click(function () { ////创建文本框 //var $textCreate = $("<input type='text' value='" + $liSelect.html() + "' /> "); ////设置文本框的value 为li标签的innerHTML ////html()这个方法有点特殊,穿实参,就是设置,不传,就是获取innerHTML $EditText.val($liSelect.html());//设置value值 //清空li标签的innerHTML $liSelect.html(""); //将全局的文本框追加进去 $EditText.appendTo($liSelect); //让文本框获得焦点//focus()如果传入函数,就是设置获得焦点事件,如果不传,就是让元素获得焦点 $EditText.focus(); //为文本框添加失去焦点事件 //$textCreate.blur(function () { // //将自己的value值,设置给选中的li标签即可 // $liSelect.html($(this).val()); //}) }) }) </script> </head> <body> <input type="button" value="追加li标签" id="btnAdd" /> <input type="button" value="在指定位置插入li标签" id="btnInsert" /> <input type="button" value="删除选中按钮" id="btnRemove" /> <input type="button" value="修改选中li标签" id="btnEdit" /> <ol id="olList"> <li>茶叶蛋</li> <li>切糕</li> <li>芭比香包</li> <li>吮指原味鸡</li> <li id="Pao">啤酒</li> </ol> </body> </html>
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> //自执行函数,作用不让外界访问, //dom树生成完毕 $(function () { //$("#id")//id选择器 //$(".class")//class选择器 //$("li")//标签选择器 //返回给我们的是一个jq对象 //jq对象的组成部分 //1.dom数组 2.jq方法 //jq对象只能使用jq方法(.html().val().click()) 不要$("li").innerHTML //----jqdom互转 // jq对象[索引] 转换成dom元素 jq对象.get(索引) //$(dom对象) dom转jq对象 好处,使用jq方法 //--------jq事件 $("li").click(function () { })//为元素设置事件..注意 不要用等号赋值 $("li").click()//如果不传实参,就是调用 点击事件 //jq常见属性 $("input").val("下午天气不错");//注意不要用等号赋值,给实参,是赋值 //不给实参.是取值 $("li").html()//给实参,赋值, 不给实参,是取值 会解析标签 $("li").text();//给实参,赋值, 不给实参,是取值 不会解析标签 //--样式设置 $("li").css("color", "red");//用键值对的方式设置 $("li").css("color");//只传key 是取值 $("li").css({ "color": "pink", "backgroundColor": "red" })//对象的字面量表示法 //创建dom元素 $("<input value=" + 123 + "/>");//直接写html标签 $("<li>小苹果<li>");//双标签,后面半个标签如果不写/就会生成2个 //将dom元素追加到dom树里面去 //$("<input value=" + 123 + "/>").appendTo("选择器","dom对象","jq对象") //将dom元素从dom树中移除 $("#btn").remove();//直接调用remove方法即可,能够自删 }) </script> </head> <body> </body> </html>
链式编程
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function () { //链式编程 //原理是,方法返回了相同的jq对象 //不返回jq对象的方法 //.get() //dom对象 //.html().val().text()不传实参 字符串 //.css("color") .css 方法 只传样式名,返回的是字符串 $("#btnTest").click(function () { //浏览器在调用的时候 dom.onclick()/this是dom对象 $(this).val("雪人兄弟"); })//单击事件 .dblclick(function () { $(this).css("fontSize", "80px"); })//双击事件 .mouseenter(function () { $(this).css("color", "yellow"); }) .mouseleave(function () { $(this).css("color", "black"); }); }) //---自己写链式编程--------------------- //链式编程的本质就是返回对象 var fox = new Object(); fox.run = function () { alert("抓小动物"); return this; } fox.eat = function () { alert("吃西瓜"); return this; } fox.play = function () { alert("跟小动物玩耍"); return this; } fox.wash = function () { alert("洗澡澡"); return this; } fox.sleep = function () { alert("zzzzZZZZ"); return this; } fox.name = "小狐狸号号"; fox.run().eat().play().wash().sleep().name; </script> </head> <body> <input type="button" id="btnTest" value="海尔兄弟" /> </body> </html>
层次选择器
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function () { //后代选择器, 使用空格分隔,后一个选择器,的筛选范围是前面的选择器找到元素的后代节点 //$("#olSongs .bangzi").css("color", "pink"); ////子代选择器 用>分隔选择器 $("#olSongs>li").css("border", "2px solid #0094ff"); ////next选择器 //$(".bangzi+li").css("backgroundColor", "#0094ff"); //同辈元素 //$("#snow~li").css("fontSize", "40px"); //}) </script> </head> <body> <ol id="olSongs"> <li>月亮之上</li> <li class="bangzi">江南style</li> <li>小苹果</li> <li> <ol id="olFoods"> <li>哈根达斯</li> <li id="snow">和路雪</li> <li class="bangzi">五仁月饼</li> <li>泡菜</li> </ol> </li> </ol> <ol id="olPeople"> <li>韩庚</li> <li class="bangzi">蔡妍</li> <li>西兰花</li> </ol> </body> </html>
过滤器
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> ol { list-style: none; } </style> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function () { alert("稍等一会"); //过滤器 :first获取第一个 //$("li:first").css("backgroundColor", "red"); ////:last获取最后一个 //// $("li:last").css("backgroundColor", "blue"); ////:eq(索引) 根据索引来获取元素 //$("li:eq(1)").css("backgroundColor", "pink"); ////:not(选择器) 不满足括号内的元素 //$("li:not(.noEnd)").css("fontFamily", "楷体"); ////----------分割线 ////:even过滤器 过滤的是索引 //$("#olCartoonPeople li:even").css("backgroundColor", "green"); //$("#olCartoonPeople li:odd").css("backgroundColor", "orange"); //--范围过滤器 //:gt(索引) 大于 // $("#peopleName li:gt(1)").css("fontSize", "40px"); //:lt(索引) 小于 // $("#peopleName li:lt(2)").css("color", "orange"); //过滤器是以前面过滤出来的元素再次过滤 //如果过滤器复合着写, 后面的过滤器过滤的元素是前面过滤完之后的 // $("#peopleName li:gt(1):lt(1)").css("fontSize", "100px"); //获取范围元素 不推荐将过滤器复合着 //.slice(索引1) 可以取到最小值 ,取不到最大值 //.slice() 大于等于 ,小于 //推荐使用.slice来获取范围元素 $("#peopleName li").slice(1, 3).css("color", "pink"); }) </script> </head> <body> <ol id="peopleName"> <li>0汤姆克鲁斯</li> <li>1贝克汉姆</li> <li>2杰克琼斯</li> <li>3李维斯</li> <li>4匡威</li> </ol> <ol> <li class="noEnd">海贼王</li> <li class="noEnd">妖精的尾巴</li> <li>进击的巨人</li> <li class="noEnd">名侦探柯南</li> <li>奥特曼</li> <li>哈尔的移动城堡</li> </ol> <ol id="olCartoonPeople"> <li>0毛利小五郎</li> <li>1泰罗奥特曼</li> <li>2徐老师</li> <li>3懒羊羊</li> <li>4圣斗士星矢</li> <li>5龙猫</li> </ol> </body> </html>
父子兄弟元素
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function () { //.parent可以获取父节点 //$("#famous").parent().css("border", "10px solid #0094ff"); ////获取子节点 //$("#famous").children("input").css("backgroundColor", "red"); ////无差别获取后代元素 .find(选择器) 获取后代元素 ////select标签 里面的option标签如果没有value属性 ////那么select.value() 获取到的 是选中的option标签的innerHTML ////如果有value属性.获取到的 就是选中的option标签的value //$("#famous").dblclick(function () {//通过点击事件触发 // alert($(this).find("select").val());//获取后代中select标签的value值 //}); alert("稍等一会"); //-----------分割线-----------兄弟元素获取 //.next获取紧挨着的 $("#fatFood").next().css("color", "pink"); //.nextAll.获取之后的所有兄弟节点 $("#fatFood").nextAll().css("backgroundColor", "green"); //获取前面的 //.prev()之前的紧挨着的 //.prevAll()之前所有的兄弟 $("#fatFood").prev().css("backgroundColor", "yellow"); //获取除自己以外的所有兄弟 //.siblings()获取所有兄弟节点(除自己意外) $("#fatFood").siblings().css("fontSize", "100px"); ///------------分割线--------下面是破坏性操作 //破坏性操作,就是改变jq方法的返回对象的操作 //一般是 获取父子,兄弟元素的方法 $("#fatFood").click(function () { }).next() }) </script> </head> <body> <ol id="olFirst"> <li>鸡腿饭</li> <li>叉烧饭</li> <li id="fatFood">猪脚饭</li> <li>肉卷饭 </li> <li>小炒牛肉</li> <li>水煮肉片</li> </ol> <ol> <li>iphone1</li> <li>iphone2</li> <li>iphone3gs</li> <li id="famous">iphone4s<input type="button" value="点击购买翻新4s" /> <div style="border: 1px solid #0094ff"> <select> <option value="比较旧">9成新</option> <option value="特别旧">8成新</option> </select> </div> </li> <li>iphone5s</li> <li>iphone6</li> </ol> </body> </html>
jquery对象和dom对象
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> //01dom对象.进行增删查改使用的是 dom语法 比如innerHTML,value,onclick,appendChild // document.getElementById("olList").innerHTML //02.调用jq的方法时,他返回的是 jq对象,方法都是jq方法, //所以 千万不要出现 $("li").innerHTML="123"; //如果我们使用的是 jq对象,那么所有方法,都有自动提示,如果没有肯定是你写错了 //jq对象有两大组成部分 //第一大部分,就是dom数组--隐式迭代 //第二大部分,jq方法 //$(function () { // alert($("li").length); //}) //$("li").append //--------------------------------dom,jq对象互转 $(function () { //通过索引来取--dom元素 $("li")[0].innerHTML = "麻辣烫"; //通过jq对象的get方法 $("li").get(1).innerHTML = "韭菜月饼"; //如何将dom对象转成jq对象 //好处,更加简洁 document.getElementById("TeaEgg").onclick = function () { $(this).css({ "color": "#0094ff", "backgroundColor": "yellow", "fontSize": "100px" }) } }); </script> </head> <body> <ol id="olList"> <li id="TeaEgg">茶叶蛋</li> <li>切糕</li> <li>芭比香包</li> <li>吮指原味鸡</li> <li>啤酒</li> </ol> </body> </html>