如何使Javascript更具体?

时间:2012-04-07 20:31:08

标签: javascript

我是JavaScript的新手,所以我认为我的问题可能很简单。 这有效:

var convId = document.getElementById("wrapper");
convId.setAttribute("align","right");

但是当我试图让它更具体时:

var convId = document.getElementById("wrapper");
var convIdDl = convId.getElementsByTagName("dl");
convIdDl.setAttribute("align","right");

我的定义列表与右侧不对齐。 我检查了HTML和CSS,一切都是正确的,但这甚至不重要 JavaScript会覆盖它们。

2 个答案:

答案 0 :(得分:5)

getElementsByTagName方法返回一个集合(更具体地说,是NodeList)。您需要指定要使用的集合中的哪个元素(就像访问数组中的元素一样)。在这里,我假设您想要第一个:

convIdDl[0].setAttribute("align", "right");

如评论中所述,您绝对不应该使用align属性。在所有情况下都应该使用CSS。

答案 1 :(得分:4)

getElementsByTagName()函数返回DOM元素的集合,因此您可能希望迭代它并在每个元素上单独设置属性。

for(var i = 0; i < convIdDl.length; i++) {
    convIdDl[i].setAttribute("align", "right");
}