jQuery其他方法
jQuery对象拷贝
想要把某个对象拷贝(合并)给另外一个对象使用,此时可以使用 $.extend()方法
语法:$.extend([deep],target,object1,[objectN]
1.[deep]:如果设置为true 则是深拷贝 ,默认为false 浅拷贝
2.target:要拷贝的目标对象
3.object1:待被拷贝的第一个对象(就是把这个拷贝给target,不止一个)
4.[objectN]:待拷贝到第N个对象的对象
5.浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响到被拷贝对象
6…深拷贝是把被拷贝的对象里面的数据完全复制一份,如果有不冲突的属性,会合并到一起,修改目标对象不会影响到被拷贝对象
$(function() {
var targetObj = {}
var obj = {
id: 1,
name: "andy"
}
//$.extend([deep],target,object1,[objectN]
$.extend(targetObj, obj); //把obj 拷贝给 targetObj
console.log(targetObj);
var targetObj = {
id: 0
};
var obj = {
id: 1,
name: "andy",
msg: {
age: 18
}
}
//如果原来的数组里已经有数据,则会覆盖掉原来的数据
$.extend(targetObj, obj); //把obj 拷贝给 targetObj
console.log(targetObj); //拷贝后 为{id: 1, name: 'andy', msg: {…}}
})
jQuery多库共存
问题概述:
jQuery使用 $ 符作为标识符,随着jQuery的流行,其他js库也会用 $ 符作为标识符,那么此时,就会产生冲突。
客观需求:
需要一个解决方案,让jQuery和其他js库不存在冲突,可以同时存在,这就叫做多库共存。
jQuery解决方案:
(1)把里面的 $ 统一改为 jQuery,比如:jQuery(“div”)
(2)jQuery变量规定新的名称:$.noConflict() var xx = $.noConflict()
var suibian = $.noConflict();//自定义
suibian("div");//使用自定义符号获取元素