(1)CDNjavascript
Google CDN:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>css
Microsoft CDN:
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>html
使用谷歌或微軟的 jQuery,有一個很大的優點:
許多用戶在訪問其餘站點時,已經從谷歌或微軟加載過jQuery。全部結果是,當他們訪問您的站點時,會從緩存中加載jQuery,這樣能夠減小加載時間。同時,大多數 CDN 均可以確保當用戶向其請求文件時,會從離用戶最近的服務器上返回響應,這樣也能夠提升加載速度。java
(2)$(function(){});
$(document).ready(function(){
--- jQuery functions go here ----
});jquery
這句代碼是爲了防止文檔在徹底加載(就緒)以前運行 jQuery 代碼。
例子:試圖隱藏一個不存在的元素。得到未徹底加載的圖像的大小.
特別注意:當頁面加載時,使用ajax從服務器取得頁面初始化數據時,須要將查找放在ajax的success回調中執行。ajax
(3)選擇器json
1)jQuery 元素選擇器
jQuery 使用 CSS 選擇器來選取 HTML 元素。
$("p") 選取 <p> 元素。
$("p.intro") 選取全部 class="intro" 的 <p> 元素。
$("p#demo") 選取全部 id="demo" 的 <p> 元素。api
2)jQuery 屬性選擇器
jQuery 使用 XPath 表達式來選擇帶有給定屬性的元素。
$("[href]") 選取全部帶有 href 屬性的元素。
$("[href='#']") 選取全部帶有 href 值等於 "#" 的元素。
$("[href!='#']") 選取全部帶有 href 值不等於 "#" 的元素。
$("[href$='.jpg']") 選取全部 href 值以 ".jpg" 結尾的元素。數組
3)jQuery 屬性選擇器
jQuery 使用 XPath 表達式來選擇帶有給定屬性的元素。
$("[type]") 選取全部帶有 type 屬性的元素。
$("[type='hidden']") 選取全部帶有 type 值等於 "hidden" 的元素。
$("[type!='hidden']") 選取全部帶有 type 值不等於 "hidden" 的元素。
$("[href$='.jpg']") 選取全部 href 值以 ".jpg" 結尾的元素。瀏覽器
4)jQuery CSS 選擇器
jQuery CSS 選擇器可用於改變 HTML 元素的 CSS 屬性。
下面的例子把全部 p 元素的背景顏色更改成紅色:
$("p").css("background-color","red");
5)更多的選擇器實例
$(this) 當前 HTML 元素
$("ul li:first") 每一個<ul> 的第一個 <li> 元素
$("div#intro .head") id="intro" 的 <div> 元素中的全部 class="head" 的元素
(4)jQuery 名稱衝突
jQuery 使用 $ 符號做爲 jQuery 的簡介方式。
某些其餘 JavaScript 庫中的函數(好比 Prototype)一樣使用 $ 符號。
jQuery 使用名爲 noConflict() 的方法來解決該問題。
var jq=jQuery.noConflict(),幫助您使用本身的名稱(好比 jq)來代替 $ 符號。
(5)ajax異步請求相關方法和操做
$.ajax();
$.post(URL,data,callback);
$.get(URL,callback);
//ajax請求
$.ajax({
type: "POST",
url: "/project/XXX.action",
data: {
username:$("#username").val(),
content:$("#content").val()
},
dataType: "json",
success: function(data){
$('#resText').empty(); //清空resText裏面的全部內容
var html = '';
$.each(data, function(commentIndex, comment){
html += '<div class="comment"><h6>' + comment['username']
+ ':</h6><p class="para"' + comment['content']
+ '</p></div>';
});
$('#resText').html(html);
}
});
//post、get請求
var url = "/project/XXX.action";
var args = {
參數名1 : 參數值1,
參數名2 : 參數值2,
參數名3 : 參數值3
};
$.post(url, args, function(data){
console.log(data);
return false;
});
$.get(url, function(data){
console.log(data);
return false;
});
(6) 獲取屏幕高度、寬度——經常使用在手機頁面自適應中
alert($(window).height()); //瀏覽器當前窗口可視區域高度
alert($(document).height()); //瀏覽器當前窗口文檔的高度
alert($(document.body).height());//瀏覽器當前窗口文檔body的高度
alert($(document.body).outerHeight(true));//瀏覽器當前窗口文檔body的總高度 包括border padding margin
alert($(window).width()); //瀏覽器當前窗口可視區域寬度
alert($(document).width());//瀏覽器當前窗口文檔對象寬度
alert($(document.body).width());//瀏覽器當前窗口文檔body的高度
alert($(document.body).outerWidth(true));//瀏覽器當前窗口文檔body的總寬度 包括border padding margin
// 獲取頁面的高度、寬度
function getPageSize() {
var xScroll, yScroll;
if (window.innerHeight && window.scrollMaxY) {
xScroll = window.innerWidth + window.scrollMaxX;
yScroll = window.innerHeight + window.scrollMaxY;
} else {
if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}
}
var windowWidth, windowHeight;
if (self.innerHeight) { // all except Explorer
if (document.documentElement.clientWidth) {
windowWidth = document.documentElement.clientWidth;
} else {
windowWidth = self.innerWidth;
}
windowHeight = self.innerHeight;
} else {
if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
} else {
if (document.body) { // other Explorers
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}
}
}
// for small pages with total height less then height of the viewport
if (yScroll < windowHeight) {
pageHeight = windowHeight;
} else {
pageHeight = yScroll;
}
// for small pages with total width less then width of the viewport
if (xScroll < windowWidth) {
pageWidth = xScroll;
} else {
pageWidth = windowWidth;
}
arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
return arrayPageSize;
}
// 滾動條
document.body.scrollTop;
$(document).scrollTop();
(7) 長按3秒觸發某事件
var timeout = undefined;
$("#mydiv").bind("mousedown", function() {
timeout = setTimeout(function() {
//某事件
}, 3000);
});
$("#mydiv").bind("mouseup", function() {
clearTimeout(timeout);
});
(8) 判斷checkbox(複選框)是否被選中
<input type="checkbox" name="check" id="checkbox"/>
$("#checkbox").click(function() {
if (!!$("#checkbox").attr("checked")) {
alert("已選中");
}
});
(9) 判斷radio選中值
<script type="text/javascript" language="javascript">
/*------判斷radio是否有選中,獲取選中的值--------*/
$(function(){
$("#btnSubmit").click(function(){
var val=$('input:radio[name="sex"]:checked').val();
//或者 var val=$('input:radio[name="sex"]').is(":checked");
if(val==null){
alert("什麼也沒選中!");
return false;
}
else{
alert(val);
}
var list= $('input:radio[name="list"]:checked').val();
//或者 var list=$('input:radio[name="sex"]').is(":checked");
if(list==null){
alert("請選中一個!");
return false;
}
else{
alert(list);
}
});
});
</script>
<body>
<form id="form1" >
<input type="radio" name="sex" value="男" />男
<input type="radio" name="sex" value="女" />女
<br />
<input type="radio" name="list" value="十分滿意" />十分滿意
<input type="radio" name="list" value="滿意" />滿意
<input type="radio" name="list" value="不滿意" />不滿意
<input type="radio" name="list" value="很是差" />很是差
<br />
<input type="submit" value="submit" id="btnSubmit" />
</form>
</body>
(10) select相關取值
獲取:
獲取select選中的 text : $(".selector").find("option:selected").text();
獲取select選中的 value: $(".selector").val();
獲取select選中的 索引: $(".selector").get(0).selectedindex;
設置:
設置value爲pxx的項選中: $(".selector").val("pxx");
設置text爲pxx的項選中: $(".selector").find("option[text='pxx']").attr("selected",true);
級聯操做:
不少時候用到select的級聯,即第二個select的值隨着第一個select選中的值變化。
如:
$(".selector1").change(function(){
$(".selector2").empty();// 先清空第二個
var option = "循環生成的多個option代碼";
$(".selector2").append(option);
});
先到這裏,之後用到什麼的時候再繼續補充。
附錄:
① ajax詳細參數解析:
url: 要求爲String類型的參數,發送請求的地址。(默認爲當前頁地址)
type: 要求爲String類型的參數,請求方式(post或get)默認爲get。注意其餘http請求方法,例如put和delete也可使用,但僅部分瀏覽器支持。
timeout: 要求爲Number類型的參數,設置請求超時時間(毫秒)。此設置將覆蓋$.ajaxSetup()方法的全局設置。
async:要求爲Boolean類型的參數,默認設置爲true,全部請求均爲異步請求。若是須要發送同步請求,請將此選項設置爲false。注意,同步請求將鎖住 瀏覽器,用戶其餘操做必須等待請求完成才能夠執行。
cache:要求爲Boolean類型的參數,默認爲true(當dataType爲script時,默認爲false)。設置爲false將不會從瀏覽器緩存中加載請求信息。對於常常變 化的數據,請把cache設置爲false;以避免讀取舊數據。
data: 要求爲Object或String類型的參數,發送到服務器的數據。若是已經不是字符串,將自動轉換爲字符串格式。
get請求中將附加在url後。防止這種自動轉換,能夠查看processData選項。對象必須爲key/value格式,
例如{foo1:"bar1",foo2:"bar2"}轉換爲&foo1=bar1&foo2=bar2。
若是是數組,JQuery將自動爲不一樣值對應同一個名稱。
例如{foo:["bar1","bar2"]}轉換爲&foo=bar1&foo=bar2。
dataType: 要求爲String類型的參數,預期服務器返回的數據類型。
若是不指定,JQuery將自動根據http包mime信息返回responseXML或responseText,並做爲回調函數參數傳遞。
可用的類型以下:
xml:返回XML文檔,可用JQuery處理。
html:返回純文本HTML信息;包含的script標籤會在插入DOM時執行。
script:返回純文本JavaScript代碼。不會自動緩存結果。除非設置了cache參數。
注意在遠程請求時(不在同一個域下),全部post請求都將轉爲get請求。
json:返回JSON數據。
jsonp:JSONP格式。使用SONP形式調用函數時,例如myurl?callback=?,JQuery將自動替換後一個 「?」爲正確的函數名,以執行回調函數。
text:返回純文本字符串。
beforeSend:要求爲Function類型的參數,發送請求前能夠修改XMLHttpRequest對象的函數,例如添加自定義HTTP頭。
在beforeSend中若是返回false能夠取消本次ajax請求。XMLHttpRequest對象是唯一的參數。
function(XMLHttpRequest){
this; //調用本次ajax請求時傳遞的options參數
}
complete:要求爲Function類型的參數,請求完成後調用的回調函數(請求成功或失敗時均調用)。
參數:XMLHttpRequest對象和一個描述成功請求類型的字符串。
function(XMLHttpRequest, textStatus){
this; //調用本次ajax請求時傳遞的options參數
}
success:要求爲Function類型的參數,請求成功後調用的回調函數,有兩個參數。
(1)由服務器返回,並根據dataType參數進行處理後的數據。
(2)描述狀態的字符串。
function(data, textStatus){
//data多是xmlDoc、jsonObj、html、text等等
this; //調用本次ajax請求時傳遞的options參數
error:要求爲Function類型的參數,請求失敗時被調用的函數。該函數有3個參數,即XMLHttpRequest對象、錯
誤信息、捕獲的錯誤對象(可選)。
ajax事件函數以下:
function(XMLHttpRequest, textStatus, errorThrown){
//一般狀況下textStatus和errorThrown只有其中一個包含信息
this; //調用本次ajax請求時傳遞的options參數
}
contentType:要求爲String類型的參數,當發送信息至服務器時,內容編碼類型默認
爲"application/x-www-form-urlencoded"。該默認值適合大多數應用場合。
dataFilter:要求爲Function類型的參數,給Ajax返回的原始數據進行預處理的函數。
提供data和type兩個參數。data是Ajax返回的原始數據,type是調用jQuery.ajax時提供的
dataType參數。函數返回的值將由jQuery進一步處理。
function(data, type){
//返回處理後的數據
return data;
}
global:要求爲Boolean類型的參數,默認爲true。表示是否觸發全局ajax事件。設置爲false將不會觸發全局
ajax事件,ajaxStart或ajaxStop可用於控制各類ajax事件。
ifModified:要求爲Boolean類型的參數,默認爲false。僅在服務器數據改變時獲取新數據。
服務器數據改變判斷的依據是Last-Modified頭信息。默認值是false,即忽略頭信息。
jsonp:要求爲String類型的參數,在一個jsonp請求中重寫回調函數的名字。
該值用來替代在"callback=?"這種GET或POST請求中URL參數裏的"callback"部分,例如
{jsonp:'onJsonPLoad'}會致使將"onJsonPLoad=?"傳給服務器。
username:要求爲String類型的參數,用於響應HTTP訪問認證請求的用戶名。
password:要求爲String類型的參數,用於響應HTTP訪問認證請求的密碼。
processData:要求爲Boolean類型的參數,默認爲true。默認狀況下,發送的數據將被轉換爲對象(從技術角度 來說並不是字符串)以配合默認內容類型"application/x-www-form-urlencoded"。若是要發送DOM 樹信息或者其餘不但願轉換的信息,請設置爲false。 scriptCharset:要求爲String類型的參數,只有當請求時dataType爲"jsonp"或者"script",而且type是GET時 纔會用於強制修改字符集(charset)。一般在本地和遠程的內容編碼不一樣時使用。