2011-12-16 135 views
12

我想知道是否有一種方法來getElementByClassName("classname").innerHTML函數或類似的東西getElementById("ClassName").innerHTML如何通過類名獲得元素

+0

這應該對你有所幫助。 http://javascript.about.com/library/bldom08.htm 但快速提示 - >使用JQuery的。這會更容易。 – Fredy31 2011-12-16 18:15:07

+1

可能重複的[如何在JavaScript中獲取元素的類?](http://stackoverflow.com/questions/3808808/how-to-get-element-by-class-in-javascript) - 我假設你正在處理與JavaScript。 – 2011-12-16 18:17:49

回答

25

您的函數名稱中缺少sgetElementsByTagName返回元素,元素,你需要遍歷集合:

var elements = document.getElementsByClassName("classname"); 

for (var i = 0; i < elements.length; i++) { 
    elements[i].innerHTML = 'foo'; 
} 

IE8及以下不支持getElementsByClassName,所以你必須找到一種填充工具或使用querySelectorAll(IE8)。

0

爲此,您可以使用jQuery

$('.className').html(); 

http://api.jquery.com/html/

+0

嘿,這個答案幫助我回答了js中class元素的用法。可能不是與上述問題有關,但它幫助我找出了我遇到的橫向滾動問題。 – DoodleKana 2014-09-30 21:04:05

-2

如果土特產品使用jQuery你可以得到它,你會在一個CSS選擇這樣:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script> 

然後...

$('.classname').each(function() { 
    // get html 
    $(this).html(); 
    // set html 
    $(this).html('something'); 
}); 

注意您也可以方便地管理innerHTML。

+0

這隻會給你這個類的第一個元素的HTML。實際上可能有很多,所以你可能不得不使用`each()`或類似的東西來處理它們。 – ivantod 2011-12-16 18:18:51

0

我建議你使用jQuery,您可以直接使用CSS選擇器(如.yourclass)找到一個給定類的所有元素:

$('.yourclass').doWhatYouWant(); 

如果你不喜歡使用jQuery,您可以使用普通的JavaScript:

document.getElementsByClassName('my-fancy-class') 

但要注意與IE8不兼容的問題。 作爲替代(速度較慢,但​​可以構建更復雜的CSS選擇器),可以使用:

document.querySelector('.cssSelector') 

將返回一個元素響應您的CSS選擇器,或

document.querySelectorAll('.cssSelector') 

將返回多個元素來代替。

相關問題