Jquery 第一課(jq選擇器:id、類、標簽、奇偶、eq、nth-child、子元素、屬性、包含、位置、過濾)


一、什么是jQuery?

jQuery是一款比較優秀的js框架。是將js中比較常用的方法封裝底層。口號是"write less,do more"。

二、如何使用jQuery呢?(使用jQuery的整體思路)

1、頁面加載完之后

2、找到對象

3、執行你要的事件

4、聲明一個事件(function())

5、完成事件里面的內容

三、第一個jQuery程序

注意小點:1、引入jQuery文件的時候,把jQuery的文件放js文件之前(頁面由上而下執行)。

               2、$的作用 一個是頁面加載 還有一個是找jQuery對象

 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>第一個jQuery小程序</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="第一個jQuery小程序" id="btn"/>
11 </body>
12 </html>

jquery代碼如下:

1 /// <reference path="_references.js" />
2 $(function () { //頁面加載
3     $("#btn").click( //找到jq對象 執行事件
4         function () { //聲明事件
5             alert("第一個jQuery");//執行事件里面的內容
6           }
7         );
8 });

js方法實現點擊時間(dom對象)

/// <reference path="_references.js" />
$(function () { //頁面加載
    //$("#btn").click( 
    //    function () { 
    //        alert("第一個jQuery");
    //      }
    //    );
    document.getElementById("btn").onclick = function () {
        alert("使用dom對象實現點擊效果");
    }
});

小結:jQuery對象只能用jQuery方法。dom對象只能用js方法。兩者不可混淆。

jQuery對象和dom對象互轉

/// <reference path="_references.js" />
$(function () { //頁面加載
   // jq對象轉dom對象
    $("#btn")[0].onclick = function () {
        alert("jq對象轉dom對象需要加【0】");
    }
});
/// <reference path="_references.js" />
$(function () { //頁面加載
   // dom對象轉jQuery對象
    $(document.getElementById("btn")).click(
        function () {
            alert("dom對象轉jQuery對象");
        }
        );
});

四、在VS中新建jq項目:

  新建web窗體時選擇第二個:

  

 

  將系統生成的多余文件夾刪掉,僅留下Scripts和Web.config:

  

 

  將Scripts文件夾改名為我們熟悉的js(也可以不改,僅推薦改),並新建文件夾css和image,並在對應位置添加頁面,html、css、js

  將上圖鼠標所指的.min.js文件拖動到html中,將自己新建的js文件拖動到它下方,如圖:

  

  *兩者上下位置關系千萬別弄飯了,min.js一定要在最上面。

 

  將Script文件夾中的第一個js文件(_references.js),拖動到自己新建的js文件里的最上面,如圖:

  

  *此步驟作用:讓jq顯示智能提示,方便寫代碼。

  完成以上步驟,即可開始正常程序編寫。

 

五、jq選擇器寫法(與js寫法的區別):

  【例】對按鈕聲明一個事件,點擊后彈出“aaaa”:

  js寫法:

    html中:

      <input type=”button” value=”我是一個按鈕” onclick=”A()” />    //出現一個點擊事件A()

    js中:  

function A()        //聲明事件A()的作用

{

        alert(“aaaa”);     //彈出框,顯示aaaa

}

  jq寫法:

    html中:

      <input type=”button” value=”我是一個按鈕” id=”btn” />      //設置一個id選擇器,名字為btn

    js中:  

$(function(){             //對頁面進行加載,加載完后執行jq(要用jq就需要先寫這句話,這是固定語句,內部寫的才是jq內容)

  $(“#btn”).click(function(){     //查找到id選擇器btn,對它執行一個點擊click事件,事件用function聲明一下,內容為:

       Alert(“aaaa”);         ///彈出框,顯示aaaa

  });

});

  *相當於js是將整個事情分散到html和js中來寫,只能用這么一次;jq是類似css那樣設置一個選擇器,然后對選擇器進行事件設置,可以用很多次。

  總結:

  (1)Js和jq可以互相轉換。

  (2)jq執行過程分為下面5個步驟:

       2.1、 對頁面進行加載:$(function(){  });

       2.2、 找到對象,如id標簽:$(“#btn”)

           2.3、 執行對象相應事件:click();

           2.4、 聲明事件:function(){  }

           2.5、 執行事件內容:alert();

   (3)優先級問題:當css和jq中同時設置了樣式時,遵循就近原則,此時的jq寫法,類似於在html標簽內加一個style樣式來寫,所以優先jq。

 

六、id選擇器:$(“#btn”)

  類似css那樣,先在html中聲明一個id選擇器:id=”btn”,然后在js頁面中查找到此id選擇器:$(“#btn”),再對它進行事件操作。

 

七、class類選擇器:$(“.btn”)

  先在html中聲明一個class選擇器:class=”btn”,然后在js頁面中查找到此id選擇器:$(“.btn”),再對它進行事件操作。

 

八、標簽選擇器:$(“tr”)

  根據html中已寫出的標簽,如tr、td等,在js頁面中查找到此標簽選擇器:$(“tr”),對它進行事件操作。

 

九、奇偶選擇器:odd(偶)、even(奇)

  $(“tr:odd”), 選擇所有位於偶數行的< tr >標記

  $(“tr:even”) ,選擇所有位於奇數行的< tr >標記

  【例】隔行換色表格:

$(function(){             

$(“tr:odd”).css(“background”,”#f8f3d2”);    //偶數行的背景顏色為#f8f3d2

$(“tr:even”).css(“background”,”#ffcdcd”);    //奇數行的背景顏色為#ffcdcd

});

 

十、eq(n)選擇器:$("X:eq(n)")

  對X標簽的第n+1個X標簽進行選擇,也可以寫作$(“X”).eq(n)。

  如:$(“tr”).eq(2),是指第三行。 

 

十一、nth-child(n)選擇器:$(“X:nth-child(n)”) 

  對X標簽的第n個X標簽進行選擇。

  如:$(“td:nth-child(3)”) ,是指第3列;  $(“li:nth-child(4)”),就是第4個li標簽。

 

【補充】eq(n)與nth-child(n)區別:

  eq(n):對全部X標簽不分父級子級依次排序下來的第n+1個X標簽進行選擇,整體頁面只選中一個X標簽。

  nth-child(n):對全部X標簽會分父級、子級、孫級,每個級別依次排列出第n個標簽,將它們全部挑選出來,可選中多個標簽。

 

十二、子元素選擇器:$(“li>a”)

  $(“li>a”),返回<li>標記的所有子元素<a>,但不包括孫標記。

  【例】查找li下的所有子標簽a,文字顏色為紅色:

<ul>
    <li>
       <a href="#“>XXXX</a>
       <div><a href="#">YYYY</a></div>
       <a href="#">XXXX</a>
       <a href="#"></a>
    </li>
</ul>


$(“li>a”).css(“color”,”red”);

效果:僅XXXX為紅色,YYYY不變,因為YYYY對於li是孫標簽(li>div>a)。

 

十三、功能函數前綴:

  $.trim(s); 去掉s字符串的前后空格。 

  【例】去掉字符串中間空格:(把字符串變成字符數組,然后把空格替換成無)

var s="das  das";

var aChar=s.split("");         //將字符串變為字符數組

for(var i=0; i<aChar.length;i++)

{

              if(aChar[i]==" ")      //當遇到某個字符是空格時

              {

                     s=s.replace(" ","");  //將此空格替換成無(從空格替換到連空格都不是)

              }

}

alert(s);               //打印s

 

十四、屬性選擇器:

  $(“某標簽[某屬性]”):選出帶有某種屬性的某標簽。如:

  (1)$("a[target]")       選出帶有target屬性的a標簽;

  (2)$(“a[href=’b.html’]”)   選出帶有href=’b.html’屬性的a標簽;

  (3)$(“a[href^=http://]”)   選出以http://開頭的a標簽;

  (4)$(“a[href$=html]”)     選出以html結尾的a標簽

  (5)$(“a[href*=bbb]”)      選出含有bbb的a標簽

 

十五、包含選擇器

  $(“某標簽:has(某屬性)”):選出包含某屬性的所有某標簽。如:$(“li:has(a)”) 包含超鏈接的所有li標記

 

十六、位置選擇器

  $(“某標簽:某位置”) :選出某特定位置的某標簽。如:

(1)$(“p:first”) 選擇頁面中的第一個p標簽

(2)$(“p:last”) 選擇頁面中的最后一個p標簽

(3)$(“p:first-child”)  選擇所有的p標記,且這些p標記是其父標記的第一個標記。

(4)$(“p:last-child”)  選擇所有的p標記,且這些p標記是其父標記的最后一個標記。

(5)$(“p:nth-child(odd)”).addClass(“myClass”) 選擇所有的p標記,且這些p標記是其父標記的偶數行。

(6)$(“p:odd”).addClass(“myClass”) 整個頁面的偶數行p標記

(7)$(“p:eq(4)”).addClass(“myClass”) 第五個p標記

(8)$(“p:gt(n)”).addClass(“myClass”) 第n個(從0開始,不包括n本身)p標記之后的所有p標記,也就是從第n+2個標記開始算,如$(“p:gt(2)”)就是從第四個p開始。

 

十七、過濾選擇器

  *備注:$(":file") 等價於$(“input[type=file]”)

 

$(“:button”)

所有按鈕

$(“:checkbox”)

所有復選框,等同於$(“input[type=’checkbox’]”)

$("div:contains(' foo ')")

所有包含了文本“foo”的元素

$(“:disable”)

所有被禁用的元素(此寫法有問題,代替寫法:$("input[disabled=disabled]").attr("value", "aaa");)

$(“:enable”)

所有沒有被禁用的元素

$(“:file”)

所有上傳控件

$(“:input”)

所有表單元素

$(“:selected”)

所有下拉菜單中被選中的項

$(“:visible”)

所有可見的元素

$(“:submit”)

所有提交按鈕

 

十八、反向過濾器:

  $(“標簽:not(:某屬性)”):選出所有不具備某屬性的某標簽。

  意思為:過濾掉所有含有“某屬性”的標簽,留下其它不具備該屬性的標簽。

  如:$(“a:not(:target)”),意思就是選出所有沒寫target的a標簽。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM