var $btn = $'('#btn'); // jQuery對象
// 方式一
var btn = $btn[0]; // DOM對象
// 方式二
var btn = $btn.get(0); // DOM對象
複製代碼
// 方式一,經過長度判斷
if ($('.link').length > 0) {}
// 方式二,轉爲DOM對象
if ($('.link')[0]) {}
複製代碼
注意:不能直接經過$('.link')來判斷,$('.link')永遠是對象。php
// 錯誤方式
if ($('.link')) {}
複製代碼
$('.one+div') === $('.one').next('div')
複製代碼
$('#prev~div') === $('#prev').nextAll('div')
複製代碼
1. $('div:first') // 第一個元素 優先使用$('div').first()
2. $('div:last') // 最後一個元素 優先使用$('div').last()
3. $('input:not(#submit)') // 去除匹配的元素
4. $('input:even') // 偶數的input
5. $('input:odd') // 奇數的input
6. $('input:eq(1)') // 索引等於1的input 優先使用$('input').eq(1) 從0開始
7. $('input:gt(1)') // 索引大於而不包括1的input
8. $('input:lt(1)') // 索引小於而不包括1的input
9. $(':header') // h1到h6的全部元素
10.$('div:animated') // 正在執行動畫的div
11. $(':focus') // 當前得到焦點的元素
複製代碼
1. $("div:cotains('hello world')") // 包含hello world文本的div元素
2. $('div:empty') // 不含子元素和文本的空元素
3. $('div:has(p)') // 含有p元素的div元素
4. $('div:parent') // 擁有子元素或文本的div元素
複製代碼
1. $(':hidden') // 全部不可見元素,包括<input type='hidden' /> 、 display:none
2. $(':visible') // 全部可見的元素
複製代碼
1. $('div[id]') // 擁有id屬性的div元素
2. $('div[title=test]') // title屬性爲test的div元素
3. $('div[title!=test]') // title屬性不等於test(沒有title屬性)的div元素
4. $('div[title^=test]') // title屬性以test開始的div元素
5. $('div[title$=test]') // title屬性以test結束的div元素
6. $('div[title*=test]') // title屬性包含test的div元素
7.$('div[title|="en"]') // title屬性等於en或以en爲前綴(en-mytitle)的div元素
8. $('div[title~="en"]') // title屬性用空格分隔的值中含有字符en的div元素
9. $('div[id=btn][title^=test]') // id屬性等於btn而且title屬性以test開始的div元素
複製代碼
1. nth-child(index/even/odd/equation) // index從1開始
$('ul li:nth-child(2)') // ul下的第二個li元素
2. $('ul li:first-child') // 爲每一個父元素ul匹配第一個li元素 ($('ul li:first')只匹配第一個ul的第一個li元素)
3. $('ul li:last-child') // 爲每一個父元素ul匹配最後一個li元素 ($('ul li:last')只匹配第一個ul的最後一個li元素)
4. $('ul li:only-child') // ul中只有一個li時,才選擇li元素
複製代碼
1. $('#form1 :enabled') // id屬性爲form1的表單內的全部可用的元素
2. $('#form1 :disabled') // id屬性爲form1的表單內的全部不可用的元素
3. $('input:checked') // 全部被選中的input元素
4. $('select option:selected') // 全部被選中的選項元素
複製代碼
1. $(':input') // 全部input、textarea、select、button
2. $(':text') // 全部<input type='text' />
3. $(':password') // 全部<input type='password' />
4. $(':radio') // 全部<input type='radio' />
5. $(':checkbox') // 全部<input type='checkbox' />
6. $(':submit') // 全部<button type='submit'></button>
7. $(':image') // 全部<button type='image'></button>
8. $(':reset') // 全部<button type='reset'></button>
9. $(':file') // 全部<input type='file' />
10. $(':hidden') // 全部不可見的元素
11. $(':button') // 全部<button></button>
複製代碼
==選擇器注意事項:==css
<div id='id#my'></div>
<div id='id[8]'></div>
$('#id\\#my')
$('#id\\[8\\]')
複製代碼
<button id='btn' type='submit'>登陸</button>
var $btn = $('#btn');
複製代碼
var type = $btn.attr('type'); // submit
複製代碼
var text = $btn.text() // 登陸
複製代碼
元素節點、屬性節點、文本節點能夠同時建立html
var $li = $('<li title=蘋果'>蘋果</li>);
複製代碼
<p>I want to say</p>
$('p').append('<b>hello</b>')
// 結果
<p>I want to say<b>hello</b></p>
複製代碼
<p>I want to say</p>
$('<b>hello</b>').appendTo('p')
// 結果
<p>I want to say<b>hello</b></p>
複製代碼
<p>I want to say</p>
$('p').prepend('<b>hello</b>')
// 結果
<p><b>hello</b>I want to say</p>
複製代碼
<p>I want to say</p>
$('<b>hello</b>').prependTo('p')
// 結果
<p><b>hello</b>I want to say</p>
複製代碼
<p>I want to say</p>
$('p').after('<b>hello</b>')
// 結果
<p>I want to say</p><b>hello</b>
複製代碼
<p>I want to say</p>
$('<b>hello</b>').insertAfter('p')
// 結果
<p>I want to say</p><b>hello</b>
複製代碼
<p>I want to say</p>
$('p').before('<b>hello</b>')
// 結果
<b>hello</b><p>I want to say</p>
複製代碼
<p>I want to say</p>
$('<b>hello</b>').insertBefore('p')
// 結果
<b>hello</b><p>I want to say</p>
複製代碼
var $li = $('ul li').eq(1).remove() // 全部後代都會被刪除,返回值是刪除節點的引用。remove('選擇器')也能夠傳參
$li.appendTo('ul') // 刪除的節點能夠從新添加回來
$('ul li').eq(1).appendTo('ul') // 移動選擇的元素到最後
複製代碼
clone()css3
$('ul li').click(function() {
$(this).clone(true).appendTo('ul') // 複製並添加到ul中,參數true表示同時複製綁定的事件
})
複製代碼
<p>你想去哪兒?</p>
$('p').replaceWith('<p>你想幹什麼?</p>')
// 結果
<p>你想幹什麼?</p>
複製代碼
<p>你想去哪兒?</p>
$('<p>你想幹什麼?</p>').replaceAll('p')
// 結果
<p>你想幹什麼?</p>
複製代碼
$('p').wrap('<strong></strong>') // 對每一個p標籤單獨用strong標籤包裹
複製代碼
$('p').wrapAll('<strong></strong>') // 對全部p標籤用一個strong標籤包裹
複製代碼
$('p').wrapInner('<strong></strong>') // 對每一個p標籤的子內容用strong標籤包裹
複製代碼
vat title = $('ul li').eq(0).attr('title') // 獲取匹配元素的title屬性
$('ul li').eq(0).attr({id:'apple', title='蘋果'}) // 設置匹配元素的屬性
複製代碼
$('ul li').eq(0).removeAttr('title') // 刪除匹配元素指定的屬性
複製代碼
$('p').addClass('mystyle') // 屢次使用類名疊加
$('p').attr('class', 'mystyle') // 屢次使用後面覆蓋前面的
$('#btn').on('click', function() {
console.log($(this).val())
})
// 簡寫方式
$('#btn').click(function() {
console.log($(this).val())
})
複製代碼
$('#btn').hover(function(){
$(this).next().show() // 光標進入觸發
}, function() {
$(this).next().hide() // 光標離開觸發
})
複製代碼
$('#btn').click(function() {
$(this).next().toggle(200)
}
複製代碼
$('#btn').trigger('click')
這樣不用點擊就觸發了點擊事件$('#btn').toggle(function() {
$(this).next().show() // 顯示
}, function() {
$(this).next().hide() // 隱藏 display:none(隱藏以前會記住display屬性的值)
})
複製代碼
==注意:== 1.9以上的版本以再也不支持toggle(fn1,fn2) 模擬鼠標連續單擊事件ajax
$.fn.toggle = function( fn, fn2 ) {
var args = arguments,guid = fn.guid || $.guid++,i=0,
toggle = function( event ) {
var lastToggle = ( $._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
$._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
event.preventDefault();
return args[ lastToggle ].apply( this, arguments ) || false;
};
toggle.guid = guid;
while ( i < args.length ) {
args[ i++ ].guid = guid;
}
return this.click( toggle );
};
複製代碼
$('#btn').toggle(function() {
$(this).next().fadeIn() // 淡入
}, function() {
$(this).next().fadeOut() // 淡出 display:none
})
複製代碼
$('#btn').toggle(function() {
$(this).next().slideUp()
}, function() {
$(this).next().slideDown() // display:none
})
複製代碼
// html
<div id='mydiv'></div>
// css
#mydiv {
position: relative;
width: 100px;
height: 100px;
background: #eee;
border: 1px solid #ccc;
cursor: pointer;
}
// script
$('#mydiv').click(function() {
$(this).animate({left: '600px', height: 200px, opacity: 0.5},3000)
.animate({top: '200px', width: 200px},2000) // 前一個animate執行完了才執行
.fadeOut(400) // 前一個animate執行完了才執行
// 造成一個動畫隊列
})
複製代碼
$('#mydiv').click(function() {
$(this).animate({left: '600px', height: 200px, opacity: 0.5},3000)
.animate({top: '200px', width: 200px},2000) // 前一個animate執行完了才執行
.css({
border: '3px solid red'
}) // 動畫一開始執行 css()就會執行
})
// 解決方案: 回調函數
$('#mydiv').click(function() {
$(this).animate({left: '600px', height: 200px, opacity: 0.5},3000)
.animate({top: '200px', width: 200px},2000, function() {
$(this)..css({
border: '3px solid red'
}) // 動畫執行完了纔會執行 css()
})
})
複製代碼
// 直接調用 stop()中止當前正在執行的動畫,當即進入動畫隊列的下一個動畫
$('#div1').hover(function() {
$(this).stop()
.animate({height: '300px', width: '300px'}, 500)
}, function() {
$(this).stop()
.animate({height: '100px', width: '100px'}, 300)
})
// 當遇到組合動畫時,stop()須要傳入參數
$('#div1').hover(function() {
$(this).stop(true) // true 清空未執行的動畫隊列
.animate({height: '300px', width: '300px'}, 500)
.animate({color: 'red', opacity: 0.5}, 200)
}, function() {
$(this).stop(true) // true 清空未執行的動畫隊列
.animate({height: '100px', width: '100px'}, 300)
.animate({color: 'green', opacity: 1}, 200)
})
複製代碼
if (! $('#div1').is(':animated')) {
// 沒有處於動畫狀態才添加動畫
}
複製代碼
動畫延遲
delay(time)
json
交互動畫windows
$('#div1').click(function() {
$(this).next().toggle() // 至關於前面基本動畫的第一個
})
複製代碼
$('#div1').click(function() {
$(this).next().sildeToggle() // 至關於前面基本動畫的第二個
})
複製代碼
$('#div1').click(function() {
$(this).next().fadeTo(600, 0.5) // 600ms內opacity調到 0.5
})
複製代碼
$('#div1').click(function() {
$(this).next().fadeToggle() // 至關於前面基本動畫的第三個
})
複製代碼
$.ajax(options)
options = {
url: 請求的地址 (String),
type: 請求方式 (Strin),
timeout: 請求超時時間的毫秒數(Number),
data: 發送的數據(Object、String),
dataType: 期待服務器返回的數據類型(String),
beforeSend: 發送前的回調函數能夠修改XMLHttpRequest對象,return false能夠取消本次請求,function(XMLHttpRequest){this // 調用本次options參數}。(Function),
complete: 請求完成回調函數,不管成功仍是失敗,function(XMLHttpRequest, textStatus) {this // 調用本次options參數}。(Function),
success: 請求成功回調函數,function(data, textStatus) {this // 調用本次options參數} (Function),
error: 請求失敗回調函數,function(XMLHttpRequest, textStatus, errorThrown) {this // 調用本次options參數} (Function),
global: 是否要觸發全局ajax事件,默認true (Boolean)
}
複製代碼
$('selecotr').load('url selector' [,data] [,function(responseText,textStatus,XMLHtmlRequest) {}])
回調函數請求完成時執行,不管成功仍是失敗。textStatus:success、error、notmodified、timeout 4種$('#send').click(function() {
$('#container').load('test.html .link')
}) // 請求test.html,並從中篩選含有link類名的標籤返回,返回後插入到id爲container的標籤中。
複製代碼
// 自動使用 POST 方法
$('#container').load('test.php', {name: 'xiaoming', age: 22}, callback)
複製代碼
$('#send').click(function() {
var username = $('#username').val();
$.get('test.php', {username: username}, function(data, textStatus) {
var username = data.username;
var content = data.content;
var html = '<div><h5>' + username + ':</h5><p>' + content + '</p></div>';
$('#container').html(html);
}, 'json');
});
複製代碼
$('#send').click(function() {
var username = $('#username').val();
$.post('test.php', {username: username}, function(data, textStatus) {
var username = data.username;
var content = data.content;
var html = '<div><h5>' + username + ':</h5><p>' + content + '</p></div>';
$('#container').html(html);
}, 'json');
});
複製代碼
$.getScript(url [,callback])
複製代碼
$.getScript(url [,function(data){}])
$('#send').click(function() {
$.getJSON('test.json', function(data) {
$.each(data, function(index, item) {
// 遍歷 data
});
});
});
複製代碼
$.get('test.php', $(#form1).serialize(), function(data, textStatus) {})
複製代碼
var fields = $(':checkbox,:radio').serializeAray()
複製代碼
var obj = {a: 1, b:2, c:3};
var result = $.param(obj); // a=1&b=2&c=3
複製代碼
(function($) {
$.fn.pluginName = function() {
// 插件
return this; // 使插件能夠鏈式操做
}
})(jQuery)
複製代碼
(function($) {
$.pluginName = function() {
// 插件
}
})(jQuery)
複製代碼