(1)AJAX 請(qǐng)求
$(function() {
$('#send').click(function() {
$.ajax({
type: "GET", //GET或POST,
async:true, //默認(rèn)設(shè)置為true叮叹,所有請(qǐng)求均為異步請(qǐng)求展蒂。
url: "http://www.idaima.com/xxxxx.php",
data: {
username: $("#username").val(),
content: $("#content").val()
},
dataType: "json", //xml绷旗、html、script撬腾、jsonp、text
beforeSend:function(){},
complete:function(){},
success: function(data) {
alert(data)
},
error:function(){},
});
});
});
(2) 如何獲取 checkbox,并判斷是否選中
$("input[type='checkbox']").is(':checked')
//返回結(jié)果:選中=true顺囊,未選中=false
(3) 獲取 checkbox 選中的值
var chk_value =[];
$('input[]:checked').each(function(){
chk_value.push($(this).val());
});
(4)checkbox 全選 / 反選 / 選擇奇數(shù)
$("document").ready(function() {
$("#btn1").click(function() {
$("[name='checkbox']").attr("checked", 'true'); //全選
}) $("#btn2").click(function() {
$("[name='checkbox']").removeAttr("checked"); //取消全選
}) $("#btn3").click(function() {
$("[name='checkbox']:even").attr("checked", 'true'); //選中所有奇數(shù)
}) $("#btn4").click(function() {
$("[name='checkbox']").each(function() { //反選
if ($(this).attr("checked")) {
$(this).removeAttr("checked");
} else {
$(this).attr("checked", 'true');
}
})
})
})
(5) 獲取 select 下拉框的值
其實(shí)下拉框的最簡(jiǎn)單了,直接 val 就行了
$("#select").val()
(6) 獲取選中值蕉拢,三種方法都可以:
$('input:radio:checked').val()特碳;
$("input[type='radio']:checked").val();
$("input[name='rd']:checked").val();
(7) 設(shè)置第一個(gè) Radio 為選中值:
$('input:radio:first').attr('checked', 'checked');
或者
$('input:radio:first').attr('checked', 'true');
(8) 設(shè)置最后一個(gè) Radio 為選中值:
$('input:radio:last').attr('checked', 'checked');
或者
$('input:radio:last').attr('checked', 'true');
(9) 根據(jù)索引值設(shè)置任意一個(gè) radio 為選中值:
$('input:radio').eq(索引值).attr('checked', 'true');//索引值=0,1,2....
或者
$('input:radio').slice(1,2).attr('checked', 'true');
(10) 根據(jù) Value 值設(shè)置 Radio 為選中值
$("input:radio[value='rd2']").attr('checked','true');
或者
$("input[value='rd2']").attr('checked','true');
通過 jquery 的 $() 引用元素包括通過 id、class晕换、元素名以及元素的層級(jí)關(guān)系及 dom 或者 xpath 條件等方法午乓,且返回的對(duì)象為 jquery 對(duì)象(集合對(duì)象),不能直接調(diào)用 dom 定義的方法闸准。http://www.idaima.com/a/1663.html
只有 jquery 對(duì)象才能使用 jquery 定義的方法益愈。注意 dom 對(duì)象和 jquery 對(duì)象是有區(qū)別的,調(diào)用方法時(shí)要注意操作的是 dom 對(duì)象還是 jquery 對(duì)象。
普通的 dom 對(duì)象一般可以通過 $() 轉(zhuǎn)換成 jquery 對(duì)象蒸其。
如:
$(document.getElementById("msg"))
則為 jquery 對(duì)象敏释,可以使用 jquery 的方法。
由于 jquery 對(duì)象本身是一個(gè)集合摸袁。所以如果 jquery 對(duì)象要轉(zhuǎn)換為 dom 對(duì)象則必須取出其中的某一項(xiàng)钥顽,一般可通過索引取出。
如:
$("#msg")[0]靠汁,$("div").eq(1)[0]蜂大,$("div").get()[1],$("td")[5]
這些都是 dom 對(duì)象蝶怔,可以使用 dom 中的方法奶浦,但不能再使用 Jquery 的方法。
以下幾種寫法都是正確的:
$("#msg").html();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;
對(duì)于獲取的元素集合添谊,獲取其中的某一項(xiàng)(通過索引指定)可以使用 eq 或 get(n) 方法或者索引號(hào)獲取财喳,要注意,eq 返回的是 jquery 對(duì)象斩狱,而 get(n) 和索引返回的是 dom 元素對(duì)象耳高。對(duì)于 jquery 對(duì)象只能使用 jquery 的方法,而 dom 對(duì)象只能使用 dom 的方法所踊,如要獲取第三個(gè) < div > 元素的內(nèi)容泌枪。有如下兩種方法:
$("div").eq(2).html(); //調(diào)用jquery對(duì)象的方法
$("div").get(2).innerHTML; //調(diào)用dom的方法屬性
Jquery 中的很多方法都是如此,主要包括如下幾個(gè):http://www.idaima.com/a/1663.html
$("#msg").html(); //返回id為msg的元素節(jié)點(diǎn)的html內(nèi)容秕岛。
$("#msg").html("<b>new content</b>");
//將“<b>new content</b>” 作為html串寫入id為msg的元素節(jié)點(diǎn)內(nèi)容中,頁面顯示粗體的new content
$("#msg").text(); //返回id為msg的元素節(jié)點(diǎn)的文本內(nèi)容碌燕。
$("#msg").text("<b>new content</b>");
//將“<b>new content</b>” 作為普通文本串寫入id為msg的元素節(jié)點(diǎn)內(nèi)容中,頁面顯示<b>new content</b>
$("#msg").height(); //返回id為msg的元素的高度
$("#msg").height("300"); //將id為msg的元素的高度設(shè)為300
$("#msg").width(); //返回id為msg的元素的寬度
$("#msg").width("300"); //將id為msg的元素的寬度設(shè)為300
$("input").val("); //返回表單輸入框的value值
$("input").val("test"); //將表單輸入框的value值設(shè)為test
$("#msg").click(); //觸發(fā)id為msg的元素的單擊事件
$("#msg").click(fn); //為id為msg的元素單擊事件添加函數(shù)
同樣 blur,focus,select,submit 事件都可以有著兩種調(diào)用方法
對(duì)于 jquery 返回的集合內(nèi)容無需我們自己循環(huán)遍歷并對(duì)每個(gè)對(duì)象分別做處理,jquery 已經(jīng)為我們提供的很方便的方法進(jìn)行集合的處理继薛。
包括兩種形式:
$("p").each(function(i){this.style.color=['#f00','#0f0','#00f'][i]})
//為索引分別為0修壕,1,2的p元素分別設(shè)定不同的字體顏色遏考。
$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})
//實(shí)現(xiàn)表格的隔行換色效果
$("p").click(function(){alert($(this).html())})
//為每個(gè)p元素增加了click事件慈鸠,單擊某個(gè)p元素則彈出其內(nèi)容
$.extend({
min: function(a, b){return a < b?a:b; },
max: function(a, b){return a > b?a:b; }
}); //為jquery擴(kuò)展了min,max兩個(gè)方法
使用擴(kuò)展的方法(通過 “$. 方法名” 調(diào)用):
alert("a=10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));
所謂連寫,即可以對(duì)一個(gè) jquery 對(duì)象連續(xù)調(diào)用各種不同的方法灌具。
例如:http://www.idaima.com/a/1663.html
$("p").click(function(){alert($(this).html())})
.mouseover(function(){alert('mouse over event')})
.each(function(i){this.style.color=['#f00','#0f0','#00f'][i]});
主要包括以下幾種方式:
$("#msg").css("background"); //返回元素的背景顏色
$("#msg").css("background","#ccc") //設(shè)定元素背景為灰色
$("#msg").height(300); $("#msg").width("200"); //設(shè)定寬高
$("#msg").css({ color: "red", background: "blue" });//以名值對(duì)的形式設(shè)定樣式
$("#msg").addClass("select"); //為元素增加名稱為select的class
$("#msg").removeClass("select"); //刪除元素名稱為select的class
$("#msg").toggleClass("select"); //如果存在(不存在)就刪除(添加)名稱為select的class
Jquery 已經(jīng)為我們提供了各種事件處理方法青团,我們無需在 html 元素上直接寫事件,而可以直接為通過 jquery 獲取的對(duì)象添加事件咖楣。
如:
$("#msg").click(function(){alert("good")}) //為元素添加了單擊事件
$("p").click(function(i){this.style.color=['#f00','#0f0','#00f'][i]})
//為三個(gè)不同的p元素單擊事件分別設(shè)定不同的處理
jQuery 中幾個(gè)自定義的事件:
(1)hover(fn1,fn2):一個(gè)模仿懸停事件(鼠標(biāo)移動(dòng)到一個(gè)對(duì)象上面及移出這個(gè)對(duì)象)的方法督笆。當(dāng)鼠標(biāo)移動(dòng)到一個(gè)匹配的元素上面時(shí),會(huì)觸發(fā)指定的第一個(gè)函數(shù)诱贿。當(dāng)鼠標(biāo)移出這個(gè)元素時(shí)娃肿,會(huì)觸發(fā)指定的第二個(gè)函數(shù)。
// 當(dāng)鼠標(biāo)放在表格的某行上時(shí)將 class 置為 over,離開時(shí)置為 out料扰。
$("tr").hover(
function(){
$(this).addClass("over");
},
function(){
$(this).addClass("out");
});
(2)ready(fn): 當(dāng) DOM 載入就緒可以查詢及操縱時(shí)綁定一個(gè)要執(zhí)行的函數(shù)锨阿。
$(document).ready(function(){alert("Load Success")})http://www.idaima.com/a/1663.html
// 頁面加載完畢提示 “Load Success”, 不同于 onload 事件,onload 需要頁面內(nèi)容加載完畢(圖片等)记罚,而 ready 只要頁面 html 代碼下載完畢即觸發(fā)墅诡。與 $(fn) 等價(jià)
(3)toggle(evenFn,oddFn): 每次點(diǎn)擊時(shí)切換要調(diào)用的函數(shù)。如果點(diǎn)擊了一個(gè)匹配的元素桐智,則觸發(fā)指定的第一個(gè)函數(shù)末早,當(dāng)再次點(diǎn)擊同一元素時(shí),則觸發(fā)指定的第二個(gè)函數(shù)说庭。隨后的每次點(diǎn)擊都重復(fù)對(duì)這兩個(gè)函數(shù)的輪番調(diào)用然磷。
//每次點(diǎn)擊時(shí)輪換添加和刪除名為selected的class。
$("p").toggle(function(){
$(this).addClass("selected");
},function(){
$(this).removeClass("selected");
});
(4)trigger(eventtype): 在每一個(gè)匹配的元素上觸發(fā)某類事件刊驴。
例如:
$("p").trigger("click"); // 觸發(fā)所有 p 元素的 click 事件
(5)bind(eventtype,fn)姿搜,unbind(eventtype): 事件的綁定與反綁定
.browser.isie舅柜,是 ie 瀏覽器則返回 true。
$.each(obj, fn):通用的迭代函數(shù)躲惰≈路荩可用于近似地迭代對(duì)象和數(shù)組(代替循環(huán))。
如
$.each( [0,1,2], function(i, n){ alert( "Item #" + i + ": " + n ); });
等價(jià)于:
var tempArr=[0,1,2];
for(var i=0;i<tempArr.length;i++){
alert("Item #"+i+": "+tempArr[i]);
}
也可以處理 json 數(shù)據(jù)础拨,如
$.each( { name: "John", lang: "JS" }, function(i, n){ alert( "Name: " + i + ", Value: " + n ); });
結(jié)果為:
Name:name, Value:John
Name:lang, Value:JS
$.extend(target,prop1,propN):用一個(gè)或多個(gè)其他對(duì)象來擴(kuò)展一個(gè)對(duì)象氮块,返回這個(gè)被擴(kuò)展的對(duì)象。這是 jquery 實(shí)現(xiàn)的繼承方式诡宗。
如:
$.extend(settings, options);
// 合并 settings 和 options滔蝉,并將合并結(jié)果返回 settings 中,相當(dāng)于 options 繼承 setting 并將繼承結(jié)果保存在 setting 中塔沃。
復(fù)制
var settings = $.extend({}, defaults, options);
// 合并 defaults 和 options蝠引,并將合并結(jié)果返回到 setting 中而不覆蓋 default 內(nèi)容。
可以有多個(gè)參數(shù)(合并多項(xiàng)并返回)
$.map(array, fn):數(shù)組映射芳悲。把一個(gè)數(shù)組中的項(xiàng)目 (處理轉(zhuǎn)換后) 保存到到另一個(gè)新數(shù)組中立肘,并返回生成的新數(shù)組边坤。
如:
var tempArr=$.map( [0,1,2], function(i){ return i + 4; });
tempArr 內(nèi)容為:[4,5,6]
var tempArr=$.map( [0,1,2], function(i){ return i > 0 ? i + 1 : null; });
tempArr 內(nèi)容為:[2,3]
$.merge(arr1,arr2): 合并兩個(gè)數(shù)組并刪除其中重復(fù)的項(xiàng)目名扛。
如:
$.merge( [0,1,2], [2,3,4] ) //返回[0,1,2,3,4]
$.trim(str):刪除字符串兩端的空白字符。
如:
$.trim(" hello, how are you? "); //返回"hello,how are you? "
很多時(shí)候我們自己定義了 方法肮韧,如果同時(shí)把這些內(nèi)容放在一起就會(huì)引起變量方法定義沖突,Jquery 對(duì)此專門提供了方法用于解決此問題。
使用 jquery 中的 jQuery.noConflict(); 方法即可把變量 方法弄企。之后應(yīng)用 Jquery 的時(shí)候只要將所有的
("#msg") 改為 jQuery("#msg")。
如:
jQuery.noConflict();
// 開始使用jQuery
jQuery("div p").hide();
// 使用其他庫的 $()
$("content").style.display = 'none';
$(document).keyup(function(event){
if(event.keyCode ==13){
$("#submit").trigger("click");
}
});