<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 閱讀(4942) 評論(1)  編輯  收藏 所屬分類: Html/JavaScript/Ajax
    主站蜘蛛池模板: 青草草在线视频永久免费| 69视频在线是免费观看| 妞干网在线免费视频| 亚洲av无码国产综合专区 | 亚洲国产成人精品无码区花野真一| 久久午夜羞羞影院免费观看 | 亚洲黄网站wwwwww| 一级特黄aa毛片免费观看| 亚洲va久久久噜噜噜久久狠狠 | 亚洲人成人无码.www石榴| 岛国片在线免费观看| 国产精品亚洲精品久久精品| 日韩免费在线观看| 看一级毛片免费观看视频| 亚洲人成国产精品无码| 国产99久久久久久免费看| 伊人久久大香线蕉亚洲五月天| 十八禁视频在线观看免费无码无遮挡骂过 | 免费人成网站在线高清| 亚洲va久久久噜噜噜久久天堂| 免费国产99久久久香蕉| 亚洲天堂一区二区| 国产成人免费在线| 亚洲成在人线aⅴ免费毛片| 亚洲成a人片在线观看日本麻豆| 精品国产免费一区二区三区| 日韩电影免费在线观看视频 | 亚洲jizzjizz少妇| 亚洲黄片手机免费观看| 两个人看的www免费视频| 亚洲国产成人久久综合野外| 不卡视频免费在线观看| 亚洲国产精品成人一区| 久久国产精品免费| 亚洲综合久久成人69| 99久在线国内在线播放免费观看| 国产精品亚洲精品观看不卡| 国产成人免费片在线观看| 亚洲国产日韩视频观看| 一级毛片直播亚洲| 免费黄网站在线观看|