1. 程式人生 > >進擊的Python【第十六章】:Web前端基礎之jQuery

進擊的Python【第十六章】:Web前端基礎之jQuery

name cat 隱藏 function wid get val 綁定 des

進擊的Python【第十六章】:Web前端基礎之jQuery

一、什麽是 jQuery ?

jQuery是一個JavaScript函數庫。

jQuery是一個輕量級的"寫的少,做的多"的JavaScript庫。

jQuery庫包含以下功能:

  • HTML 元素選取
  • HTML 元素操作
  • CSS 操作
  • HTML 事件函數
  • JavaScript 特效和動畫
  • HTML DOM 遍歷和修改
  • AJAX
  • Utilities

提示: 除此之外,Jquery還提供了大量的插件。

這裏有一個jquery操作速查網站:http://jquery.cuishifeng.cn/

jquery有三個版本:

1.X 2.X

3.X

原則上是最新最好,最新的代表最新最高級的功能,但是也包含了最新的未被發現的bug,而且對老版本的瀏覽器不支持,兼容性相對1.X版本要差,這裏推薦1.X版本,兼容性最好,功能也不差。

下載

官網:https://jquery.com/

這裏提供1.12.4的下載鏈接

https://code.jquery.com/jquery-1.12.4.js
https://code.jquery.com/jquery-1.12.4.min.js (這是壓縮版)

一、查找元素

導入jquery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    
</head>
<body>

    <script src="jquery-1.12.4.js"></script>
</body>
</html>

查找元素

選擇器實例選取
* $("*") 所有元素
#id $("#lastname") id="lastname" 的元素
.class $(".intro") class="intro" 的所有元素
.class,.class $(".intro,.demo") class 為 "intro" 或 "demo" 的所有元素
element $("p") 所有 <p> 元素
el1,el2,el3 $("h1,div,p") 所有 <h1>、<div> 和 <p> 元素
:first $("p:first") 第一個 <p> 元素
:last $("p:last") 最後一個 <p> 元素
:even $("tr:even") 所有偶數 <tr> 元素,索引值從 0 開始,第一個元素是偶數 (0),第二個元素是奇數 (1),以此類推。
:odd $("tr:odd") 所有奇數 <tr> 元素,索引值從 0 開始,第一個元素是偶數 (0),第二個元素是奇數 (1),以此類推。
:first-child $("p:first-child") 屬於其父元素的第一個子元素的所有 <p> 元素
:first-of-type $("p:first-of-type") 屬於其父元素的第一個 <p> 元素的所有 <p> 元素
:last-child $("p:last-child") 屬於其父元素的最後一個子元素的所有 <p> 元素
:last-of-type $("p:last-of-type") 屬於其父元素的最後一個 <p> 元素的所有 <p> 元素
:nth-child(n) $("p:nth-child(2)") 屬於其父元素的第二個子元素的所有 <p> 元素
:nth-last-child(n) $("p:nth-last-child(2)") 屬於其父元素的第二個子元素的所有 <p> 元素,從最後一個子元素開始計數
:nth-of-type(n) $("p:nth-of-type(2)") 屬於其父元素的第二個 <p> 元素的所有 <p> 元素
:nth-last-of-type(n) $("p:nth-last-of-type(2)") 屬於其父元素的第二個 <p> 元素的所有 <p> 元素,從最後一個子元素開始計數
:only-child $("p:only-child") 屬於其父元素的唯一子元素的所有 <p> 元素
:only-of-type $("p:only-of-type") 屬於其父元素的特定類型的唯一子元素的所有 <p> 元素
parent > child $("div > p") <div> 元素的直接子元素的所有 <p> 元素
parent descendant $("div p") <div> 元素的後代的所有 <p> 元素
element + next $("div + p") 每個 <div> 元素相鄰的下一個 <p> 元素
element ~ siblings $("div ~ p") <div> 元素同級的所有 <p> 元素
:eq(index) $("ul li:eq(3)") 列表中的第四個元素(index 值從 0 開始)
:gt(no) $("ul li:gt(3)") 列舉 index 大於 3 的元素
:lt(no) $("ul li:lt(3)") 列舉 index 小於 3 的元素
:not(selector) $("input:not(:empty)") 所有不為空的輸入元素
:header $(":header") 所有標題元素 <h1>, <h2> ...
:animated $(":animated") 所有動畫元素
:focus $(":focus") 當前具有焦點的元素
:contains(text) $(":contains(‘Hello‘)") 所有包含文本 "Hello" 的元素
:has(selector) $("div:has(p)") 所有包含有 <p> 元素在其內的 <div> 元素
:empty $(":empty") 所有空元素
:parent $(":parent") 匹配含有子元素或者文本的元素。
:hidden $("p:hidden") 所有隱藏的 <p> 元素
:visible $("table:visible") 所有可見的表格
:root $(":root") 文檔的根元素
:lang(language) $("p:lang(de)") 所有帶有以 "de" 開頭的 lang 屬性值的 <p> 元素
[attribute] $("[href]") 所有帶有 href 屬性的元素
[attribute=value] $("[href=‘default.htm‘]") 所有帶有 href 屬性且值等於 "default.htm" 的元素
[attribute!=value] $("[href!=‘default.htm‘]") 所有帶有 href 屬性且值不等於 "default.htm" 的元素
[attribute$=value] $("[href$=‘.jpg‘]") 所有帶有 href 屬性且值以 ".jpg" 結尾的元素
[attribute|=value] $("[title|=‘Tomorrow‘]") 所有帶有 title 屬性且值等於 ‘Tomorrow‘ 或者以 ‘Tomorrow‘ 後跟連接符作為開頭的字符串
[attribute^=value] $("[title^=‘Tom‘]") 所有帶有 title 屬性且值以 "Tom" 開頭的元素
[attribute~=value] $("[title~=‘hello‘]") 所有帶有 title 屬性且值包含單詞 "hello" 的元素
[attribute*=value] $("[title*=‘hello‘]") 所有帶有 title 屬性且值包含字符串 "hello" 的元素
[name=value][name2=value2] $( "input[id][name$=‘man‘]" ) 帶有 id 屬性,並且 name 屬性以 man 結尾的輸入框
:input $(":input") 所有 input 元素
:text $(":text") 所有帶有 type="text" 的 input 元素
:password $(":password") 所有帶有 type="password" 的 input 元素
:radio $(":radio") 所有帶有 type="radio" 的 input 元素
:checkbox $(":checkbox") 所有帶有 type="checkbox" 的 input 元素
:submit $(":submit") 所有帶有 type="submit" 的 input 元素
:reset $(":reset") 所有帶有 type="reset" 的 input 元素
:button $(":button") 所有帶有 type="button" 的 input 元素
:image $(":image") 所有帶有 type="image" 的 input 元素
:file $(":file") 所有帶有 type="file" 的 input 元素
:enabled $(":enabled") 所有啟用的元素
:disabled $(":disabled") 所有禁用的元素
:selected $(":selected") 所有選定的下拉列表元素
:checked $(":checked") 所有選中的復選框選項
.selector $(selector).selector 在jQuery 1.7中已經不被贊成使用。返回傳給jQuery()的原始選擇器
:target $( "p:target" ) 選擇器將選中ID和URI中一個格式化的標識符相匹配的<p>元素

二、操作元素

篩選

$(‘#i1‘).next()
$(‘#i1‘).nextAll()
$(‘#i1‘).nextUntil(‘#ii1‘)
				
<div>
	<a>asdf</a>
	<a>asdf</a>
	<a id=‘i1‘>asdf</a>
	<a>asdf</a>
	<a id=‘ii1‘>asdf</a>
	<a>asdf</a>
</div>
				
$(‘#i1‘).prev()
$(‘#i1‘).prevAll()
$(‘#i1‘).prevUntil(‘#ii1‘)
				
				
$(‘#i1‘).parent()
$(‘#i1‘).parents()
$(‘#i1‘).parentsUntil()
				
$(‘#i1‘).children()
$(‘#i1‘).siblings()
$(‘#i1‘).find()
$(‘li:eq(1)‘)
$(‘li‘).eq(1)
first()
last()
hasClass(class)

文本操作

$(..).text()           # 獲取文本內容
$(..).text(“<a>1</a>”) # 設置文本內容
				
$(..).html()
$(..).html("<a>1</a>")
				
$(..).val()
$(..).val(..)

樣式操作  

addClass
removeClass
toggleClass

屬性操作

# 專門用於做自定義屬性
$(..).attr(‘n‘)
$(..).attr(‘n‘,‘v‘)
$(..).removeAttr(‘n‘)
				
<input type=‘checkbox‘ id=‘i1‘  />
				
				
# 專門用於chekbox,radio
$(..).prop(‘checked‘)
$(..).prop(‘checked‘, true)
PS: 
index 獲取索引位置

事件綁定

$(‘.c1‘).click()
$(‘.c1‘).....
					
$(‘.c1‘).bind(‘click‘,function(){
						
})
					
$(‘.c1‘).unbind(‘click‘,function(){
						
})
					
*******************
$(‘.c‘).delegate(‘a‘, ‘click‘, function(){
					
})
$(‘.c‘).undelegate(‘a‘, ‘click‘, function(){
					
})
					
$(‘.c1‘).on(‘click‘, function(){
					
})
$(‘.c1‘).off(‘click‘, function(){
					
})
					
阻止事件發生
	return false
					
# 當頁面框架加載完成之後,自動執行
$(function(){
					
$(...)
					
})

jQuery擴展

- $.extend        $.方法
- $.fn.extend     $(..).方法
			
(function(){
	var status = 1;
	// 封裝變量
})(jQuery)

  

進擊的Python【第十六章】:Web前端基礎之jQuery