这是css:
#content ul {
font-size: 12px;
}
我正在尝试这个:
document.getElementById("content ul").style.fontSize = 8px;
但这不适合我。有人可以建议怎么做吗?
答案 0 :(得分:5)
两个问题:
样式属性是字符串,因此您需要"8px"
而不是8px
。
getElementById
按ID 获取元素。你传递了一个复合选择器(你错过了#
)。您必须使用ID然后查找子项(通过getElementsByTagName
),或使用querySelector
(对于第一个匹配元素)或querySelectorAll
(对于所有匹配元素)。 (请注意,虽然一般情况下支持得很好,但有些旧浏览器没有最后两个; details。)
例如,以下是如何在querySelector
支持的浏览器上更改第一个匹配元素的字体大小:
document.querySelector("#content ul").style.fontSize = "8px";
或者所有人
var list = document.querySelectorAll("#content ul");
var index;
for (index = 0; index < list.length; ++index) {
list[index].style.fontSize = "8px";
}
或者在较旧的浏览器上:
var content = document.getElementById("content");
var list = content.getElementsByTagName("ul");
var index;
for (index = 0; index < list.length; ++index) {
list[index].style.fontSize = "8px";
}
答案 1 :(得分:0)
<ul>'s
是元素,而不是id。首先按id获取内容元素。然后获取无序列表中的子节点。最后迭代列表并更改大小。正如TJ所说,你需要传入一个字符串。
var lists = document.getElementById('content').getElementsByTagName('ul');
for (var i; i < lists.length; i++ ) {
lists[i].style.fontSize = '8px';
}
答案 2 :(得分:0)
您需要正确选择它们。首先,您需要获取包含<ul>
的元素。
var contentArea = document.getElementById("content");
然后你需要通过tagname获取相应的标签:
var tags = contentArea.getElementsByTagName("ul");
然后循环浏览它们以设置字体大小:
for (i=0; i<tags.length, i++)
{
tags[i].style.fontSize = "8px"; // Don't forget the " here
}