使用javascript更改ul元素的字体大小

时间:2012-02-09 15:50:20

标签: javascript css

这是css:

#content ul {
               font-size: 12px;
           }

我正在尝试这个:

document.getElementById("content ul").style.fontSize = 8px;

但这不适合我。有人可以建议怎么做吗?

3 个答案:

答案 0 :(得分:5)

两个问题:

  1. 样式属性是字符串,因此您需要"8px"而不是8px

  2. getElementById按ID 获取元素。你传递了一个复合选择器(你错过了#)。您必须使用ID然后查找子项(通过getElementsByTagName),或使用querySelector(对于第一个匹配元素)或querySelectorAll(对于所有匹配元素)。 (请注意,虽然一般情况下支持得很好,但有些旧浏览器没有最后两个; details。)

  3. 例如,以下是如何在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
}