Javascript 如何按类名获取元素

Javascript 如何按类名获取元素,javascript,html,css,dom,Javascript,Html,Css,Dom,我想知道是否有一种方法可以使用getElementByClassName(“classname”).innerHTML函数或类似于getElementById(“classname”).innerHTML您可以使用jquery来实现这一点 $('.className').html(); 如果您使用jQuery,您可以像在CSS选择器中一样获得它,因此: <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquer

我想知道是否有一种方法可以使用
getElementByClassName(“classname”).innerHTML
函数或类似于
getElementById(“classname”).innerHTML

您可以使用jquery来实现这一点

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

如果您使用jQuery,您可以像在CSS选择器中一样获得它,因此:

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

请注意,您还可以方便地管理innerHTML。

我建议您使用JQuery,在这里您可以直接使用CSS选择器(如.yourclass)查找给定类的所有元素:

$('.yourclass').doWhatYouWant();
如果您不喜欢使用JQuery,可以使用纯Javascript:

document.getElementsByClassName('my-fancy-class')
但是要小心IE8的不兼容性问题。 作为替代方案(速度较慢,但您可以构建更复杂的CSS选择器),您可以使用:

document.querySelector('.cssSelector')
它将返回一个响应CSS选择器的元素,或者

document.querySelectorAll('.cssSelector')

它将返回多个元素。

函数名中缺少一个
s
getElementsByTagName
返回需要迭代的元素集合:

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

for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = 'foo';
}
var elements=document.getElementsByClassName(“classname”);
对于(var i=0;i

IE8及以下版本不支持
GetElementsByCassName
,因此您必须找到一个polyfill或使用
querySelectorAll
(IE8)。

这应该会对您有所帮助。但是快速提示->使用Jquery。这将更容易。可能的重复-我假设您正在处理JavaScript。这将只为这个类的第一个元素提供html。实际上可能有很多,所以你可能不得不使用类似于
each()
或类似的方法来处理它们。即使在编辑之后仍然不好。。。检查搅拌机的答案,找出正确的方法。现在应该可以了。。。实际上,与Blender的回答相比,它并没有添加太多信息,但谢谢您。在
每个
回调中,您应该使用
$(this.html()
,而不是
$('.classname').html()
。我之前的评论也适用于这里的所有其他答案,这些答案没有使用
每个
,也没有直接在JQuery选择器上调用方法。在编辑器之外纠正已经编写的代码通常是一条充满危险的道路!再次感谢ivantod。请注意,
getElementsByClassName
在IE8及以下版本中不可用。这个答案帮助我回答了类元素在js中的用法。可能与上面的问题没有多大关系,但它帮助我解决了水平滚动的问题。
var elements = document.getElementsByClassName("classname");

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