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)
复制代码