jQuery從入門到忘記

来源:http://www.cnblogs.com/lidyan/archive/2017/05/27/6913739.html
-Advertisement-
Play Games

jQuery 是一套Javascript腳本庫,註意 jQuery 是腳本庫,而不是腳本框架。"庫"不等於"框架"。jQuery 並不能幫助我們解決腳本的引用管理和功能管理,這些都是腳本框架要做的事。腳本庫能夠幫助我們完成編碼邏輯,實現業務功能。使用 jQuery 將極大的提高編寫javascrip... ...


jQuery 是一套Javascript腳本庫,註意 jQuery 是腳本庫,而不是腳本框架。"庫"不等於"框架"。jQuery 並不能幫助我們解決腳本的引用管理和功能管理,這些都是腳本框架要做的事。

腳本庫能夠幫助我們完成編碼邏輯,實現業務功能。使用 jQuery 將極大的提高編寫javascript代碼的效率, 讓寫出來的代碼更加優雅, 更加健壯。

使用 jQuery 的這些功能函數,能夠幫助我們快速完成各種功能,而且會讓我們的代碼異常簡潔。

javascript腳本在不同瀏覽器的相容性一直是 Web 開發人員的噩夢,比如在 jQuery 中就通過統一event對象,讓我們可以在所有瀏覽器中使用event.target獲取事件對象。

總結一下,jQuery封裝了JavaScript + DOM,可以寫的更少做的更多。本文僅對常用內容做一個總結,方便日後把相關知識點快速撿起來。

jQuery語法基本格式:$(selector).action()

鏈式編程

jQuery速查表

一、選擇器(selector)

1、基本選擇器

#id
element
.class
* 包含body
selector1,selector2,selectorN 併列選擇,組合

$("p").css("color","red")
$("#div1").text("it works")
$(".div2").css("background","yellow")

2、層級選擇器

ancestor descendant     所有後代
parent > child          只有兒子
prev + next             後面緊鄰的下一個
prev ~ siblings         後面所有的兄弟同輩

3、基本篩選器

針對索引進行篩選

:first      第一個
:even       索引為偶數
:odd        索引為奇數
:eq(index)  索引等於
:gt(index)  索引大於
:lt(index)  索引小於

其他

:not(selector)  非
:header
:focus

針對內容進行篩選

:contains(text)

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

:empty              選擇內容為空的

:has(selector)      如包含P標簽

$("div:has(p)").addClass("test");

針對屬性進行篩選

[attribute]             也可以自定義屬性
[attribute=value]
[attr1][attr2][attr3]   多個屬性併列

<div id="div1" selfdefine="moumou"/>

$("div[selfdefine]")

$("div[id='div1']")     重要常用

針對錶單進行篩選

:input
:checkbox

$("input") 
$(":input")

$("input[type='checkbox']") 
$(":checkbox")

針對錶單對象屬性篩選

:enabled
:disabled       禁用標簽
:checked
:selected

$("input:checked")
$("select option:selected")

二、篩選器

篩選

eq(index|-index)
first()
last()
hasClass(class)

$("p:eq(1)").css("fontSize","30px")
$("p").eq(1)
//優勢後者不需要字元串拼接

查找

children([expr])        只有兒子,沒有孫子
find(e|o|e)             所有後代

next([expr])            緊鄰的下一個
nextAll([expr])         下麵的所有滿足條件的集合
nextUntil([e|e][,f])    到**為止

prev([expr])            緊鄰的上一個
prevall([expr])
prevUntil([e|e][,f])

parent([expr])          父親
parents([expr])         父親爺爺等祖先
parentsUntil([e|e][,f])

siblings([expr])        後面的兄弟
// 左側下拉菜單
function show(self){
    //console.log($(self).text())
    $(self).next().removeClass("hide")
    $(self).parent().siblings().children(".con").addClass("hide")
}

三、操作元素(action)

1、 屬性操作

//HTML代碼/文本/值
$("p").text()    $("p").html()   $(":checkbox").val()

$(".test").attr("attr")
$(".test").attr("attr","value") 

$(".test").attr("checked","checked")
$(":checkbox").removeAttr("checked")

$(".test").prop("checked",true)

$(".test").addClass("hide")
$(".test").removeClass("hide")

取消全選的實例


 <button onclick="selectAll();">全選</button>
 <button onclick="cancel();">取消</button>
 <button onclick="reverse();">反選</button>
 <table border="1">
     <tr>
         <td><input type="checkbox"></td>
         <td>11111</td>
     </tr>
     <tr>
         <td><input type="checkbox"></td>
         <td>11111</td>
     </tr>
     <tr>
         <td><input type="checkbox"></td>
         <td>11111</td>
     </tr>
 </table>

<script src="jquery-1.8.2.js"></script>
<script>
    function selectAll() {
         $("table :checkbox").prop("checked",true)
    }
     function cancel() {
         $("table :checkbox").prop("checked",false)
    }
    function reverse() {
         $("table :checkbox").each(function(){
               if ($(this).prop("checked")){
                   $(this).prop("checked",false)
               }
               else {
                   $(this).prop("checked",true)
                }
        })
}
</script>

each 函數需要註意的問題:

// each return 退出與外層函數無關
// each return false 提示each退出
function f1(){
    var li=[11,22,23,44]
    //x,y索引和值
    $.each(li,function (x,y) {
           console.log(y);
           if (x == 1){
            return false;
           }
    });
    return 
    console.log("ok");
}

2、CSS操作

(樣式) css("{color:'red',backgroud:'blue'}")

(位置) offset() position() scrollTop() scrollLeft()

(尺寸) height() width()

 //scrollTop距離頂部的距離
 window.onscroll=function(){
    var current=$(window).scrollTop();
    console.log(current)
}

3、文檔處理

內部插入

append()
appendTo() 
$("#c1").append("<b>hello</b>")
$("p").appendTo("div")

prepend()
prependTo() 

外部插入

before()        insertBefore()
after           insertAfter()
replaceWith()   替換
remove()        刪除標簽
empty()         清空內容
clone()         複製某標簽

4、事件

整個文檔拓撲結構載入再執行js代碼

// 所有函數放入其中,需要等待整個文檔載入完,避免找不到
$(document).ready(function(){...})
$(function(){...})

綁定事件

//js中的寫法
<button class="result" onclick="show(this)"></button>
function show(self){
    self.lalalala;
}

//jQuery的寫法
$(".result").click(function(this){
    this.lalalala;
})

$("p").click(function(){})

$("p").bind("click",function(){})                    

//用的時候再綁定事件
$("ul").delegate("li","click",function(){})     事件委托

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 模板方法模式的定義 在一個方法中定義一個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。 模板方法模式的類圖 在我們使用的框架中,很多地方都用到了模板方法模式。畢竟框架要對用戶是可擴展的,所以會封裝了一些模板方法,然後部分具體的實現交由子 ...
  • 2017年5月28日,晴,心情還不錯。 昨晚和同事擼串,回來後繼續威士忌走起,喝到凌晨2點多,聊的甚歡。彼此分享了很多自己成長過程中的故事,相互之間有了進一步的瞭解,友情又進了一步。在以後的時光里,願珍惜,共勉,我的朋友們! 昨下午同事胡幫我測了一下自己負責的模塊,發現了一些小問題,馬上著手修BUG ...
  • 《圖靈原創:Node.js開髮指南》首先簡要介紹Node.js,然後通過各種示例講解Node.js的基本特性,再用案例式教學的方式講述如何用Node.js進行Web開發,接著探討一些Node.js進階話題,最後展示如何將一個Node.js應用部署到生產環境中。 《圖靈原創:Node.js開髮指南》面 ...
  • 最近項目做多頁面應用使用到了,react + webpack + redux + antd去構建多頁面的應用,本地開發用express去模擬服務端程式(個人覺得可以換成dva).所以在這裡吐槽一下我自己對於redux的一些見解。 Redux是狀態管理的服務,可以當作是mvc中的controller層 ...
  • Angular4.0來了,更小,更快,改動少 接下來為Angular4.0準備環境和學會使用Angular cli項目 1.環境準備: 1)在開始工作之前我們必須設置好開發環境 如果你的機器上還沒有安裝Node.js和npm,請安裝他們 (這裡特別推薦使用淘寶的鏡像cnpm,記得以後把npm的指令改 ...
  • jQuery箭頭切換圖片 佈局 3d位移 變形原點 jQuery transform:translate3d(x,y,z); x 代表橫向坐標移向量的長度 y 代表縱向坐標移向量的長度 z 代表Z軸移向量的長度 取值不可為百 scale() 縮放 transform-origin:0 50%; to ...
  • 談起angular2(現在已經angular4)了,個人覺得angular2的官方文檔不太適合初學者(真心吐槽..),所以每一塊弄懂都不那麼容易。 為了弄懂angular的動畫自己也是花了一番功夫,不客觀的說,angular的動畫寫起來是比較複雜的,但又必須掌握。 下麵是我結合官方文檔以及王芃老師寫 ...
  • 說明 如需求:後臺返回一個用戶列表數組,該數組可能為空,最多只可能會有10個用戶, 頁面中A,B兩處展示用戶列表,B處不管如何都會展示返回的所有用戶,A處需要展示10個用戶,不足10個展示預設用戶, 比如:返回7個,A處展示的後3個都是預設用戶 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...