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';
}