<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    認識for…in 循環語句

    Posted on 2006-11-26 10:09 Jaunt 閱讀(7856) 評論(0)  編輯  收藏 所屬分類: JavaScript
    for...in循環的Javascript示例:
    <html>
    <head>
    <title>一個使用到for...in循環的Javascript示例</title>
    </head>
    <body>
    <script type="text/javascript">
    // 創建一個對象 myObject 以及三個屬性 sitename, siteurl, sitecontent。
    var myObject = new Object();
    myObject.sitename = "布啦布啦";
    myObject.siteurl = "blabla.cn";
    myObject.sitecontent = "網頁教程代碼圖庫的中文站點";
    //遍歷對象的所有屬性
    for (prop in myObject)
    {
    document.write("屬性 '" + prop + "' 為 " + myObject[prop]);
    document.write("<br>");
    }
    </script>
    </body>
    </html>

    今天網上Java Tang博客找到了一個用來遍歷JavaScript某個對象所有的屬性名稱和值的方法,這樣想使用方法的時候非常的直觀和方便。代碼如下:
    1. /*
    2. * 用來遍歷指定對象所有的屬性名稱和值
    3. * obj 需要遍歷的對象
    4. * author: Jet Mah
    5. * website: http://www.javatang.com/archives/2006/09/13/442864.html
    6. */
    7. function ? allPrpos ( obj ) {
    8. ? ? // 用來保存所有的屬性名稱和值
    9. ? ? var ? props = "" ;
    10. ? ? // 開始遍歷
    11. ? ? for ( var ? p in obj ){ ?
    12. ? ? ? ? // 方法
    13. ? ? ? ? if ( typeof ( obj [ p ]) == " function " ){ ?
    14. ? ? ? ? ? ? obj [ p ]() ;
    15. ? ? ? ? } else { ?
    16. ? ? ? ? ? ? // p 為屬性名稱,obj[p]為對應屬性的值
    17. ? ? ? ? ? ? props += p + " = " + obj [ p ] + " \t " ;
    18. ? ? ? ? } ?
    19. ? ? } ?
    20. ? ? // 最后顯示所有的屬性
    21. ? ? alert ( props ) ;
    22. }

    AJAX的JavaScript的反射機制,反射機制指的是程序在運行時能夠獲取自身的信息。例如一個對象能夠在運行時知道自己有哪些方法和屬性。 在JavaScript中利用for(…in…)語句實現反射,其語法如下:

    for(var p in obj){
    //語句
    }

    在Ajax編程中,經常要能動態的改變界面元素的樣式,這可以通過對象的style屬性來改變,比如要改變背景色為紅色,可以這樣寫:
    element.style.backgroundColor="#ff0000";

    基本上CSS里擁有的屬性在JavaScript中都能夠使用:
    function setStyle(_style){
    //得到要改變樣式的界面對象
    var element=getElement();
    element.style=_style;
    }

    直接將整個style對象作為參數傳遞了進來:
    var style={
    color:#ffffff,
    backgroundColor:#ff0000,
    borderWidth:2px
    }

    這時可以這樣調用函數:
    setStyle(style);

    或者直接寫為:
    setStyle({ color:#ffffff,backgroundColor:#ff0000,borderWidth:2px});

    這段代碼看上去沒有任何問題,但實際上,在setStyle函數內部使用參數_style為element.style賦值時,如果element原先已經有了一定的樣式,例如曾經執行過:
    element.style.height="20px";

    而_style中卻沒有包括對height的定義,因此element的height樣式就丟失了,不是最初所要的結果。要解決這個問題,可以用反射機制來重寫setStyle函數:
    function setStyle(_style){
    //得到要改變樣式的界面對象
    var element=getElement();
    for(var p in _style){
    element.style[p]=_style[p];
    }
    }

    程序中遍歷_style的每個屬性,得到屬性名稱,然后再使用方括號語法將element.style中的對應的屬性賦值為_style中的相應屬性的值。從而,element中僅改變指定的樣式,而其他樣式不會改變,得到了所要的結果。^-^

    主站蜘蛛池模板: 久久WWW免费人成—看片| 全部在线播放免费毛片| 18观看免费永久视频| 久久噜噜噜久久亚洲va久| 中文在线免费看视频| 亚洲AV日韩AV永久无码下载| 三年片在线观看免费西瓜视频| 亚洲最大AV网站在线观看| 成人黄网站片免费视频| 亚洲精品免费观看| 久久经典免费视频| 亚洲AV无码专区在线电影成人| 免费看片免费播放| 男女啪啪免费体验区| 中文亚洲AV片不卡在线观看| 另类免费视频一区二区在线观看| 亚洲AV午夜福利精品一区二区| 日韩插啊免费视频在线观看 | 日本片免费观看一区二区| 亚洲美女免费视频| 国产又黄又爽又猛免费app| 亚洲乱色伦图片区小说| 亚洲精品成人久久久| 女人体1963午夜免费视频| 4480yy私人影院亚洲| 免费涩涩在线视频网| 一级大黄美女免费播放| 久久久久亚洲精品无码系列| 青青在线久青草免费观看| 色吊丝性永久免费看码| 久久精品亚洲视频| 性xxxx视频播放免费| 人妻巨大乳hd免费看| 77777_亚洲午夜久久多人| 免费毛片网站在线观看| 青青青国产手机频在线免费观看| 精品亚洲AV无码一区二区| 亚洲熟伦熟女新五十路熟妇| 国产成人免费高清激情明星| 4hu四虎免费影院www| 亚洲国产成人精品无码区在线秒播 |