前言:从这节课开始讲jQuery的相关内容,这节课主要围绕jQuery的选择器展开。
内容:
1.jQuery是一个优秀的js框架,目前企业里大多数都是用jQuery(以下简称jq)。jq是对js里一些常用功能的封装和简化,可以说jq是Write less, do more。jq的底层还是基于js。
2.使用jq之前,需要添加jquery.js文件。第一个例子:
HTML代码:
1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title></title> 6 <script src="js/jquery-1.10.2.min.js"></script> 7 <script src="js/demo.js"></script> 8 </head> 9 <body> 10 <input type="button" value="我是一个按钮" id="btn"/> 11 </body> 12 </html>
JS代码:
1 $(function() { 2 $("#btn").click(function() { 3 alert("Hello world~"); 4 }); 5 });
上面的代码虽然简单,但是它体现了我们操作jq的思路及思想:1.$(function(){});代表页面加载之后;2.$("#btn")找到jq对象;3.执行所需的事件click();4.声明一个事件,用function();5.完成事件里面的内容。
$(document).ready(function(){});就等价于$(function(){});---后面的写法是前面写法的简写,都表示页面加载之后。
$("#btn")是jq中的找到对象,document.getElementById("btn")是相应的js中的找到对象写法,由此可以看出jq的写法简单了很多。
3.jq中的“$”:
(1)选择器:id选择器($("#showDiv"));类选择器($(".someClass"));标签选择器($("input"))
(2)特殊: $("p:odd"):选择所有位于奇数行的<p>标记;$("p:even"):选择所有位于j偶数行的<p>标记;
$("td:nth-child(1)"):所有表格行的第一个单元格,就是第一列;
$("li>a"):返回<li>标签中的所有子元素<a>,不包括孙元素;
$("a[title]"):选择所有设置了title属性的超链接;
$("a[href='www.bing.com']"):选择所有等于www.bing.com的超链接;
$("a[href^=http]"):选择所有设置了以http开头的超链接;
$("a[href$=pdf]"):选择所有以pdf结尾的超链接;
$("a[href*=pdf]"):选择所有包含pdf的超链接。
4.功能函数前缀:$.trim(sString):去掉字符串前后的空格,但不能去掉字符串中间的空格。若要想去掉字符串中间的空格,用split()方法将字符串变为字符数组,然后遍历数组,若是空格则去掉就好,代码如下:
1 var sInput = $(#txt).val(); 2 var aInput = sInput.split(""); 3 for(var i = 0; i < aInput.length; i++) 4 { 5 if(aInput[i]==" ") 6 { 7 sInput = sInput.replace(" ",""); 8 } 9 } 10 alert(sInput);
5.包含选择器:$("li:has(a)"):包含超链接的所有li标签。
6.位置选择器:$("p:first"):整个页面中的第一个p标签;
$("p:last"):整个页面中的最后一个p标签;
$("p:first-child"):选择所有的p标签,且这些p标签是其父标签的第一个标签;
$("p:last-child"):选择所有的p标签,且这些p标签是其父标签的最后一个标签;
$("p:nth-child(odd)").addClass("myClass"):选择所有的p标签,且这些p标签是其父标签的奇数行;
$("p:odd"):整个页面的奇数行p标签;
$("p:eq(4)")或$("p").eq(4):第5个p标签,有两种写法;
$("p:eq(2)").siblings():第3个p标签的兄弟,即除了第三个之外的所有p标签;
$("p:eq(2)").prev():第3个p标签的前一个p标签;
$("p:eq(2)").next():第3个p标签的后一个p标签;
$("p:eq(2)").parent().attr("id"):获取第3个p标签的父标签的id属性值;
$("p:gt(n)"):第n个(从0开始,不包括n本身)p标签之后的所有p标签,只有一种写法;
7.过滤选择器:$("input[name='a']"):选择所有name属性为a的input标签;
$(":button"):所有按钮;
$("div:contains(foo)"):所有包含了文本”foo“的元素;
$(":disable"):所有被禁用的元素,等价于:$("input[disabled=disabled]").attr("value","aaa");
$(":enable"):所有没有被禁用的元素;
$(":file"):所有上传文件;
$(":input"):所有表单元素;
$(":selected"):所有下拉菜单中被选中的项;
$(":visible"):所有可见的元素;
$(":submit"):所有提交按钮;
8.反向过滤:$("input:not(:radio)"):表示input中所有非radio元素;:not(filter)中的filter必须是过滤选择器,而不能是其他选择器。
后记:预习,复习,练习。