2011-10-17 33 views
4

如何通過JavaScript獲得課程名稱,如果沒有此span的編號。如何通過JavaScript獲取課程名稱

像:<span class="xyz"></span>

我想改變這個span的背景色。

我該如何解決這個問題?請幫幫我。

tympanus.net/Tutorials/CSS3PageTransitions/index3.html#contact

+1

到目前爲止您嘗試了什麼?此外,你必須澄清你是否想獲得該元素的類,或者找到該元素的類。 –

+0

可能重複的[如何在JavaScript中獲取元素的類?](http://stackoverflow.com/questions/3808808/how-to-get-element-by-class-in-javascript) –

回答

4

像這樣的東西應該工作:

var spans = document.getElementsByTagName("span"); 
for (var i = 0; i < spans.length; i++) { 
    if (spans[i].className == 'xyz') { 
     spans[i].style.backgroundColor = '#000'; 
    } 
} 
+0

非常感謝你,我已修復此代碼希望所以工作.. –

2

您可以使用document.getElementsByClassName('xyz')。注意:它會返回數組一個NodeList(感謝@IAbstractDownvoteFactory),因爲可以有多個具有相同類的元素。

var spans = document.getElementByClassName('xyz'); 
var i; 
for(i=0; i<spans.length; i++) { 
    spans[i].style.backgroundColor = your_color; 
} 
+1

它返回一個NodeList,但它非常接近數組。 – Joe

+0

(a)在9之前的IE中不支持(b)獲取元素的類不同於通過類獲取元素(猜測OP在此需要澄清)。 –

+0

非常感謝... –

2

您有以下選擇:

  1. 使用document.getElementsByClassName("xyz")。這將返回一個具有該類名稱的對象的NodeList(如數組)。不幸的是,這個功能在舊版本的IE中不存在。
  2. 使用document.getElementsByTagName("span")然後遍歷這些對象,測試.className屬性以查看哪些具有所需的類。
  3. 使用document.querySelectorAll(".xyz")可以使用該類名稱獲取所需的對象。不幸的是,這個功能在舊版瀏覽器中不存在。
  4. 獲取一個庫,可以自動處理所有瀏覽器中的所有CSS3選擇器查詢。如果你只需要一個選擇庫,那麼你可以使用Sizzle。如果你想要一個更全面的庫來操作DOM,那麼使用YUI3或jQuery(它們都有內置的Sizzle)。

我的建議是選項#4。除非這是一個非常小的項目,否則通過使用已經開發用於跨瀏覽器使用的CSS3選擇器庫,您的開發生產力將大大提高。例如,在灒,你可以用你的類名對象的數組與這行代碼:

var list = Sizzle(".xyz"); 

在jQuery中,你可以創建一個包含對象的列表與類此行jQuery對象代碼:

var list = $(".xyz"); 

而且,這兩個將在自IE6所有的瀏覽器,您無需擔心任何瀏覽器的兼容性。

+0

非常感謝.... –

+0

添加了幾個新選項並重寫了答案。 – jfriend00

0

您可以使用一個jQuery解決同樣的問題。

var classname = $(this).attr('class'); //here you will get current class name if its with multiple class split it and take first class. 
    $("."+classname.split(" ")[0]).css("background-color", "yellow");