2011-03-01 22 views
1

我得到了這個div一個div ...在我的頁面中間選擇通過類名

<div tabindex="0" class="button-base inline-block button aw-btn button-base-active"> 
    <input type="text" tabindex="-1" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow-x: hidden; overflow-y: hidden; position: absolute; "> 
</div> 

,它沒有ID,我無法編輯網頁的HTML,我還沒有能夠使用jQuery的。還試圖用IE7和IE8做到這一點。這裏

噩夢:)

解決辦法是document.getElementsByClassName但那不是IE7和IE8兼容。

這個div被埋在大約10個div中,所有這些都是類似的風格,沒有id等。這個div上的類是獨一無二的!

我能看到的唯一解決方案是獲取所有div並循環尋找hasAttriutes類似的東西。

任何人有更好的主意嗎?

+0

任何機會,'input'處於'form'? – kojiro 2011-03-01 01:23:20

+0

我討厭人們製作一百個「實用」課程,然後製作一個上百個課程的div。在某些情況下,我可以理解兩三個... – 2011-03-01 01:23:44

+0

查看此鏈接,海報在[devshed]爲IE創建了一個'getElementsByClassName()'(http://forums.devshed.com/showpost.php?p= 2182479&postcount = 4) – Patrick 2011-03-01 01:23:54

回答

6

下面是不兼容的瀏覽器(citation)跨瀏覽器實現的getElementsByClassName

if (!document.getElementsByClassName) 
{ 

    document.getElementsByClassName = function(classname) 
    { 
     var elArray = []; 

     var tmp = document.getElementsByTagName("*"); 

     var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)"); 
     for (var i = 0; i < tmp.length; i++) { 

      if (regex.test(tmp[i].className)) { 
       elArray.push(tmp[i]); 
      } 
     } 

     return elArray; 

    }; 
} 
0

不,就是這麼做的。除非他們在帶有ID的東西,否則您將被拒絕迭代頁面上的所有DIV。幸運的是,它只是一個列表(不需要通過樹進行遞歸),所以它並沒有那麼糟糕。

0

我會建議使用XPath來選擇節點。可能工作...

0

使用jQuery /灒。 IE6和以上。 :)

加載:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 

使用它:

jQuery('.class.otherclass.anotherclass') 
+1

「我也無法使用jQuery」 – Mauricio 2011-03-01 02:20:41

+0

@Mauricio我不知道我是怎麼錯過的。 – Kayla 2011-03-01 22:46:10

+0

喜歡它。不要成爲仇敵。 – 2011-03-13 20:55:35

相關問題