var $p= $('p')
新建一个jquery对象,通常在新建jquery对象的时候,加上一个$,以便好认。css
返回的是一个相似数组对象,jquery能够经过$p[0]
下标来获取对应的对象,也能够获取$p
的长度jquery
页面上没有id=abc的元素,选中原生js对象时,返回的是null,咱们能够知道选中这个元素不存在。但选中这个jquery对象,返回的仍是类数组,咱们分辨不了,咱们只能经过length来分辨jquery对象是否不存在api
jquery能够经过$p[0]下标来转换为对应的dom对象数组
若是咱们只是想要获取对应的子jquery对象,不想转换成dom对象,就直接用$('#p1').eq(2)
获得的仍是jquery对象app
get方法获取指定index的DOM对象,也就是咱们说的jQuery对象转DOM对象。get()不写参数把全部对象转为DOM对象返回dom
dom对象转换成jquery对象,只须要加上一个#号函数
//each的参数顺序和js的参数顺序相反
遍历一个jQuery对象,为每一个匹配元素执行一个函数this
$('li').each(function(ind,e){ console.log(('ind+':'+$(e).text()') } //text方法是取出jquery对象的值,
jQuery对象里面回调函数,通常来讲对应的元素都是原生dom,要执行jQuery的text方法须要加$转换成jquery对象spa
在jquery中有一种用法\$.each(),其中$==jQuery对象。
each通用的迭代函数,它能够用来无缝迭代对象和数组。数组和相似数组的对象经过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其余对象经过其属性名进行迭代
注意,函数对应的是element的值,而不是element自己code
var obj = { "flammable": "inflammable", "duh": "no duh" }; $.each( obj, function( key, value ) { alert( key + ": " + value ); });
经过一个函数匹配当前集合中的每一个元素,产生一个包含新的jQuery对象
$('div').map(function(i, ele){ return this.id; });
$('.child').map(function(index,e){ return $(e).text()})
1)将两个或更多对象的内容合并到第一个对象。目标对象(第一个参数)将被修改,而且将经过$.extend()返回。然而,若是咱们想保留原对象,咱们能够经过传递一个空对象做为目标对象:
var object = $.extend({}, object1, object2);
在默认状况下,经过$.extend()合并操做不是递归的;
2)deep类型: Boolean
若是是 true,合并成为递归(又叫作深拷贝)。不支持给这个参数传递 false,若是第一个对象的属性不写,就不会实现深拷贝
3)不深拷贝的例子
var object1 = { apple: 0, banana: { weight: 52, price: 100 }, cherry: 97 }; var object2 = { banana: { price: 200 }, durian: 100 }; // Merge object2 into object1 $.extend( object1, object2 );
结果:{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
4)深拷贝的例子
var object1 = { apple: 0, banana: { weight: 52, price: 100 }, cherry: 97 }; var object2 = { banana: { price: 200 }, durian: 100 }; $.extend( true, object1, object2 );
结果:{"apple":0,"banana"{"weight":52,"price":200},"cherry":97,"durian":100}
.clone()方法深度复制全部匹配的元素集合,包括全部匹配元素、匹配元素的下级元素、文字节点
一般咱们将页面上一个元素插入到DOM里另外一个地方,它会被从老地方移走,相似剪切的效果
$('.hello').appendTo('.goodbye');
<div class="container">
<div class="goodbye">
Goodbye <div class="hello">Hello</div>
</div>
</div>
可是咱们若是须要的是复制而不是剪切,咱们能够像下面这样写代码:
$('.hello').clone().appendTo('.goodbye');
.get() 接受一个索引值参数并返回对应的DOM节点, .index() 与其正好相反,接受一个DOM节点而后返回其索引值
建议直接看jquery文档
当DOM准备就绪时,指定一个函数来执行。
虽然JavaScript提供了load事件,当页面呈现时用来执行这个事件,直到全部的东西,如图像已被彻底接收前,此事件不会被触发。
在大多数状况下,只要DOM结构已彻底加载时,脚本就能够运行。传递处理函数给.ready()方法,能保证DOM准备好后就执行这个函数,所以,这里是进行全部其它事件绑定及运行其它 jQuery 代码的最佳地方。
若是执行的代码须要在元素被加载以后才能使用时,(例如,取得图片的大小须要在图片被加载完后才能知道),就须要将这样的代码放到 load 事件中。
下面两种语法所有是等价的:
$(document).ready(handler)
$(handler)
咱们常常这么使用
$(function(){
console.log('ready');
});
这三种写法都表示一个意思