使用document.getElementsByClassName()更改多个元素的字体?

时间:2014-03-20 22:30:25

标签: javascript html css class fonts

如何使用document.getElementsByClassName()更改CSS中的字体?

我尝试使用:

document.getElementsByClassName("classname").style.fontFamily="Your font";

但它不起作用。

我使用的是Firefox 27.0.1,它应该得到支持,所以我不认为这是一个问题。我的代码有问题吗?

4 个答案:

答案 0 :(得分:2)

首先请注意,它.getElementsByClassName()不是.getElementsByClass()

.getElementsByClassName()方法返回匹配元素的NodeList,因此,您必须遍历返回的列表以应用该属性,如下所示:

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

for (var i = 0; i < list.length; ++i) {
    list[i].style.fontFamily="Your font";
}

答案 1 :(得分:1)

使用.getElementsByClassName()代替.getElementsByClass()

此外,document.getElementsByClassName()返回包含所有给定类名的所有子元素的数组。由于它返回一个数组,你需要迭代遍历数组的所有元素,如下所示:

elems = document.getElementsByClassName("classname")
for(elem in elems){
    elem.style.fontFamily="Your font";
}

答案 2 :(得分:1)

getElementsByClassName()返回类似数组的元素集合。像对待真实阵列一样迭代它:

var elements = document.getElementsByClassName("classname");
for(var i = 0; i < elements.length; i++) {
    elements[i].style.fontFamily="Times New Roman";
}

如果你喜欢更短的东西,可以考虑使用jQuery:

$('.classname').css('fontFamily', 'Times New Roman');

答案 3 :(得分:-1)

请改用:

document.getElementsByClassName("classname").style.font="bold 20px Your Font";

如果你可以使用jQuery:

$('.classname').css("font-family", 'Your Font');