用js的style屬性可以獲得html標簽的樣式,但是不能獲取非行間樣式。
解決方法:
在IE下可以用currentStyle;
在FF下用getComputedStyle;
然而,為了讓其兼容,解決方法,封裝成getStyle事件:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> #p2{width:500px;height:100px;background-color:green;} </style></head><body><p ></p></body></html><script>最初:
if(oDiv2.currentStyle){ //IE console.log(oDiv2.currentStyle.height);}else{ // FF console.log(getComputedStyle(oDiv2,false).width);}
//封裝一個兼容性的獲取元素樣式的函數 //分析:哪個元素,哪個樣式 function getStyle(obj,attr){ if(obj.currentStyle){ //IE return obj.currentStyle[attr]; }else{ //FF return getComputedStyle(obj,false)[attr]; } }//用法 window.onload = function(){ var oDiv=document.getElementById("p2"); console.log(getStyle(oDiv,"width")); }//進一步封裝 //obj:獲取誰的樣式,attr:樣式名稱,value樣式的值
function css(obj,attr,value){ if(arguments.length==2){//獲取 return getStyle(obj,attr) }else if(arguments.length == 3){//設置 obj.style[attr] =value; }}
//用法:
// oBtn.onclick = function () {// css(oDiv,"background","black");// css(oDiv,"border","3px solid yellow");// console.log(css(oDiv,"width"));// }
</script>補充:JavaScript中,函數本身的length屬性和arguments.length到底有什么區別?1,函數本身有length屬性,表示參數的個數。arguments.length也表示參數的個數。2,函數對象的length屬性是形式參數的個數;arguments偽變量的length屬性是某次調用的實際參數的個數?! ±? function func(a,b,c){ console.log(arguments.length);//輸出:3 } console.log(func.length)//輸出: 1 func(1);以上是后來發現錯的,2017-03-16更正了以后:
function func(a,b,c){ console.log("arguments:"+arguments.length); //輸出 arguments::1 } console.log("length:"+func.length); //輸出 length: 3 func(1);
3,函數本身也是對象,對象就有屬性,函數有length屬性,比如: function fn(x,y,z) {}中 fn.length=3,說明了函數的形參個數; 而在函數體內,arguments.length表示傳入函數的實參個數,比如:function fun(1,2) { console.log(arguments.length)} 中實參的個數為arguments.length=2
4,fn.length: 形參個數arguments.length: 實參個數
//拓展:
//arguments 數組(所有的參數) 可變參(不定參)function sum2() { var result = 0; var i = 0; for(i=0;i<arguments.length;i++){ result += arguments[i]; } console.log(result);//輸出13}sum2(4,4,5);
總結,除了可以用arguments去判斷參數個數,還可以做不定參的運算。
154507.html
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
渤海銀行是哪里的銀行?這是天津的一家銀行。渤海銀行全稱渤海銀行股份有限公司,成立于2005年12月31日。是一家全國性股份制商業銀行,總行位于天津市河東區海河東路218號。渤海銀行注冊資本144.5億元。渤海銀行是第一家總部設在天津的商業銀行,也是第一家在初創階段引入境外戰略投資者的中資商業銀行。2019年,在英國《銀行家》雜志發布的“全球銀行1000強”排名中,渤海銀行排名攀升,全球銀行排名第1...
DWORD是什么意思?DWORD(雙字)表示雙字節。兩個字(32位)是應用于許多地方的“值”。例如,在注冊表中,它屬于編程類也就是說,在Win32中unsign long是4個字節,它的長度是定義的。也就是說,它在Win32中有定義:“define DWORD unsigned long”,所以移植起來更方便Windows常用于保存地址(或指針)等可以使用unsigned long的地方。它也可以...
蚌埠電大的文憑有用嗎?有用。安徽廣播電視大學蚌埠分校于1979年1月1日在蚌埠成立。學校地址位于皖北中心城市張公山路126號(郵政編碼:233000)(行政區代碼:3403)。我校建校43年,培養了大批優秀人才。我們學校以教書育人為主,學校符合體制,人文。蚌埠電大的文憑有用嗎?答:蚌埠電大的有用,基層公務員有電大就可以考。...