<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 閱讀(4940) 評論(1)  編輯  收藏 所屬分類: Html/JavaScript/Ajax
    主站蜘蛛池模板: 国内免费高清在线观看| 日韩不卡免费视频| 亚洲av无码不卡私人影院| 亚洲娇小性xxxx| 又大又硬又爽又粗又快的视频免费| 亚洲国产第一站精品蜜芽| 怡红院免费全部视频在线视频| 亚洲午夜激情视频| 99视频在线观看免费| 亚洲AV无一区二区三区久久| 久久精品中文字幕免费| 亚洲男人天堂影院| 18禁超污无遮挡无码免费网站国产 | 亚洲国产精品自在拍在线播放| 日本高清免费中文在线看| 亚洲中文字幕无码不卡电影| a毛片全部播放免费视频完整18| 久久伊人久久亚洲综合| 免费看男女下面日出水来| 亚洲日韩AV一区二区三区四区| 男人的天堂亚洲一区二区三区 | 久久99国产亚洲精品观看| 精品熟女少妇a∨免费久久| 亚洲区精品久久一区二区三区| 成人免费看吃奶视频网站| 日韩成人毛片高清视频免费看| 亚洲乱码中文字幕综合| 日韩精品极品视频在线观看免费| 2020国产精品亚洲综合网| 亚洲 综合 国产 欧洲 丝袜| 黄网站免费在线观看| tom影院亚洲国产一区二区| 波多野结衣视频在线免费观看| 两个人看的www免费高清| 亚洲午夜在线一区| 亚洲国产精品尤物yw在线| 香蕉免费一区二区三区| 亚洲国产欧美一区二区三区| 亚洲一区二区三区无码中文字幕| 999国内精品永久免费观看| 一级黄色片免费观看|