1

我习惯了 JQuery,但不习惯纯 Javascript。我有这个:

document.getElementById("div-id a").style.javascript_property = "color: red;";

当然,它不起作用。我想要的是一个特定 div 中具有 id='div-id' 的所有 a-tags 变为红色。

在 jquery 我会写:

$('#div-id a').css('color', 'red');

但我需要它在纯js中。

4

2 回答 2

5

利用:

var div = document.getElementById("div-id");
var list = div.getElementsByTagName("a");
for (var i = 0; i < list.length; i++) {
  list[i].style.color = "red";
}
于 2012-09-05T08:59:49.073 回答
1

getElementById方法采用表示id的字符串,而不是选择器。线索就在名字里。该querySelectorAll方法接受一个表示选择器的字符串,但它返回一个 nodeList,因此您必须像数组一样循环它。

您调用的属性名称javascript_property需要与 CSS 属性名称匹配(连字符变成驼峰式)(应该是"color")。

您给它的值需要匹配 CSS 属性值,而不是整个规则 (so "red")。

然而,这些都不是纯 JavaScript。它是 DOM(querySelectorAll来自 Selectors API 的除外)。

于 2012-09-05T09:00:58.743 回答