如果是使用了 JQ EXTJS 的话本身就有 对象克隆的 函数库可以使用 如 extjs 使用
extuxutilclone()
没有用这些的话 可以自己写一个 克隆函数 网上有资源 比如
function deepClone(obj){ var result={},oClass=isClass(obj);// if(oClass==="Object"){
// result={};
// }else if(oClass==="Array"){
// result=[];
// }else{
// return obj;
// }
for(key in obj){
var copy=obj[key];
if(isClass(copy)=="Object"){
result[key]=argumentscallee(copy);
}else if(isClass(copy)=="Array"){
result[key]=argumentscallee(copy);
}else{
result[key]=obj[key];
}
}
return result;
}
function isClass(o){
if(o===null) return "Null";
if(o===undefined) return "Undefined";
return ObjectprototypetoStringcall(o)slice(8,-1);
}
或者参考 extjs 的方法
function(o) {if(!o || 'object' !== typeof o) { return o; }
if('function' === typeof oclone) { return oclone(); }
var c = '[object array]' === objectprototypetostringcall(o) [] : {};
var p, v;
for(p in o) {
if(ohasownproperty(p)) { v = o[p];
if(v && 'object' === typeof v) {
c[p] = extuxutilclone(v);
} else {
c[p] = v;
}
}
}
return c;};
改成w=woffsetWidth;
js获取Html元素的实际宽度高度
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1stylewidth拿不到宽度,而通过#div1offsetWidth才可以获取到宽度。
第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度。
小结,因为idoffsetWidth和idoffsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性。注意如果不是写在行内style中的属性都不能通过idstyleatrr来获取。
现在的前端制作很少直接把样式写style里了,都是写在样式表里。如果你要获取的样式没有相对应的(就像#div1stylewidth对 应#div1offsetWidth),就只能分别针对不用浏览器来获取样式表的属性了,可以试着搜索“JS 获取样式属性”之类的。
以上就是关于js中如何复制一个对象并获取其所有属性和属性对应的值全部的内容,包括:js中如何复制一个对象并获取其所有属性和属性对应的值、js中关于获取元素属性的方法(object.style.width)、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)