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

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

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

    posts - 15,  comments - 8,  trackbacks - 0

    在寫了很多js后,會發現在js中總會出現各種各樣奇怪的問題,主要的問題是不能獲得所需要的對象.
    一般來說,我們所需要獲得的對象有幾種辦法獲得:
    1. ID 法,通過使用document.getElementById()這個方法獲得用戶所需的對象,你只需要在標簽中加入id="yourIdName"這樣的屬性,你就可以用這個方法獲得這個對象了.舉個例子來說:有如下代碼
    <table><tr id='zergTr'><td>這里是zergpest的第一行</td></tr></table>
    那么我們要獲得這個tr,并且設置這個tr為不可見,應該這樣做.請看如下代碼:
    <script type="text/javascript">
          var zergpest = document.getElementById("zergTr");
          zergpest.style.display = "none";
    </script>
    這樣就可以通過使用document.getElementById() 這個方法來獲得改對象,并且設置該對象為不可見.
    但是,如果我們需要設置多個具有同樣ID的對象不可見的時候,這個方法就不能用了,因為無論你怎么為后面的<tr>標簽添加id屬性,用document.getElementById()這個方法獲得的只能是第一個具有該ID的對象,其實其他的ID這時候應該是屬于偽Id了.你所要操作的只能操作到第一個具有該ID的對象,而不是具有所有你所設置的具有該ID的對象.那么這時候我們該怎么辦呢,請看第2種方法.
    2.Name法,通過使用document.getElementsByName()這個方法獲得用戶所需的對象,你需要做的是在標簽中加入name="yourname"這樣的屬性,道理上說你就可以使用該方法獲得該對象了.然而,有些時候確不是這樣的,document.getElementsByName()這個方法其實主要是針對form標簽中的對象有用,在form標簽以外的對象就不一定有用了,這里說的不一定,是說有時候有用,有時候沒有用.不過也可能和我用的IE7 beta3 有關,沒有深入研究過.舉個例子了說,有如下代碼.
    <table><tr name='zergTr'><td>這里是zergpest的第一行</td></tr></table>
    <table><tr name='zergTr'><td>這里是zergpest的第二行</td></tr></table>
    我們這里有二個相同的name,因為這個方法是獲取具有多個name的,如果只有一個name的話,那么建議你用ID法來獲取,而不要用這種,不然的話你需要進行判斷length值.
    我們可以用如下代碼來獲取該對象,并且設置該對象為不可見,代碼如下:
    <script type="text/javascript">
        var zergpest = document.getElementsByName("zergTr");
        if (!zergpest.length)
        {
              zergpest.style.display = "none";
         }
         else
        {
              for (var i=0;i<zergpest.length;i++)
              {
                   zergpest[i].style.display = "none";
              }
         }
    </script>
    這樣,道理上我們應該可以設置所有name值為zergTr的對象為不可見了,可是事實往往并不能如你所希望的,如果我們在<tr>前面加個<form>標簽,那么結果就可以得到你所需要的結果了,但沒有form標簽的話,結果是有時候可以正確,有時候不正確,甚至不能獲得對象.這時候,我們用第3種方法來解決,這就是軒轅的JS對象大招了.
    3.超級Name大法,通過使用document.documentElement.getElementsByTagName()這個方法結合name法來獲得這些你所需要的對象.還是用剛才的例子.如下:
    <table><tr name='zergTr'><td>這里是zergpest的第一行</td></tr></table>
    <table><tr name='zergTr'><td>這里是zergpest的第二行</td></tr></table>
    這里我們需要設置該<tr>標簽為不可見,而也不希望加上看著很不愉快的<form>標簽,這時我們就需要用如下代碼:
    <script type="text/javascript">
        var zergpest = document.documentElement.getElementsByTagName("tr");
        if (!zergpest.length)
        {
            zergpest.style.display == "none";
        }
        else
        {
            var realZerg = [];
            for (var i=0;i<zergpest.length;i++)
            {
                 if (zergpest[i].name == "zergTr")
                {
                    realZerg.push(zergpest[i]);
                }
            }
            if (realZerg.length)
            {
                for (var j=0;j<realZerg.length;j++)
                {
                    realZerg[j].style.display = "none";
                }
            }
        }
    </script>
    這樣就可以把所有name值等于yourname這樣的多個對象設置為不可見了,這就是軒轅的超級Name大法,:),不要覺得用了2個for會犧牲性能,占用用戶的cpu,其實現在用戶的cpu最少都是1.5GHz以上,這點小運算對CPU來說根本就是駱駝身上的一個細胞,而且用戶的cpu閑著也是閑著,既然對他供著電,那就讓他做點事情吧.:)這3種方法各有好處,按照不同的需要可以選擇不同的方法.終究會達到js所需要的目的.


    原文地址:http://zergpest.spaces.live.com/blog/cns!2C6F0CD52F9AC08D!1480.entry?_c=BlogPart
    posted on 2008-04-20 22:27 lvq810 閱讀(4941) 評論(1)  編輯  收藏 所屬分類: Html/JavaScript/Ajax
    主站蜘蛛池模板: 91嫩草私人成人亚洲影院| 国产亚洲精久久久久久无码77777| 亚洲av午夜福利精品一区人妖| 免费很黄无遮挡的视频毛片| 国产精品美女自在线观看免费 | 久久久久亚洲精品天堂| 精品一区二区三区免费 | 蜜芽亚洲av无码精品色午夜| 久久精品国产免费| 亚洲国产精品热久久| 91精品免费观看| 亚洲日本香蕉视频| 歪歪漫画在线观看官网免费阅读| 亚洲av无码片区一区二区三区| 无码国产精品久久一区免费| 亚洲久热无码av中文字幕| 天堂亚洲免费视频| 国产久爱免费精品视频| 国产亚洲人成网站在线观看不卡| 日韩av无码久久精品免费| 亚洲制服在线观看| 国产精品成人免费综合| 永久免费无码日韩视频| 亚洲AV永久无码精品| 西西大胆无码视频免费| 国产精品亚洲а∨无码播放不卡| 亚洲精品色婷婷在线影院| 国产精品免费观看调教网| 亚洲AV无码乱码在线观看代蜜桃| 精品久久久久久久免费人妻 | 亚洲日本乱码一区二区在线二产线| av无码久久久久不卡免费网站| 亚洲熟伦熟女专区hd高清| 亚洲午夜爱爱香蕉片| 精品无码AV无码免费专区| 亚洲色欲啪啪久久WWW综合网| 免费在线观看a级毛片| 天黑黑影院在线观看视频高清免费| 亚洲成年人电影网站| 亚洲成人高清在线| 67194国产精品免费观看|