<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中僅改變指定的樣式,而其他樣式不會改變,得到了所要的結果。^-^

    主站蜘蛛池模板: 国产精品视频永久免费播放| 中国毛片免费观看| 69堂人成无码免费视频果冻传媒 | 日韩电影免费在线观看| 久久精品国产亚洲精品| 中文字幕乱码系列免费| 亚洲一区二区女搞男| 在线免费播放一级毛片| 久久青青草原亚洲AV无码麻豆| 成人A片产无码免费视频在线观看| 国精无码欧精品亚洲一区| 丁香花在线视频观看免费| 久久噜噜噜久久亚洲va久| 69视频免费在线观看| 天堂亚洲国产中文在线| 日本一区免费电影| 一二三区免费视频| 久久精品国产亚洲精品2020| 91精品免费久久久久久久久| 亚洲AV无码一区二区三区牛牛| 宅男666在线永久免费观看| 无遮挡国产高潮视频免费观看| 人人狠狠综合久久亚洲婷婷| 亚洲免费二区三区| 色偷偷噜噜噜亚洲男人| 国产av无码专区亚洲国产精品 | 日本免费一区二区在线观看| 中文字幕在线观看亚洲视频| 午夜国产大片免费观看| a级毛片免费全部播放无码| 亚洲一区二区三区高清视频| 免费在线观看理论片| 性xxxx视频免费播放直播| 亚洲日产乱码一二三区别| 亚洲日韩在线观看| 亚洲w码欧洲s码免费| 免费毛片毛片网址| 亚洲最大中文字幕| 亚洲精品tv久久久久| 日韩视频在线精品视频免费观看 | 免费无码专区毛片高潮喷水 |