我习惯了JQuery但不习惯纯Javascript。 我有这个:
document.getElementById("div-id a").style.javascript_property = "color: red;";
OF COURSE它不起作用。 我想要的是一个特定div中的所有a-tags都有一个id ='div-id'变成红色。
在jquery中我会写:
$('#div-id a').css('color', 'red');
但我需要纯粹的js。
答案 0 :(得分: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";
}
答案 1 :(得分:1)
getElementById
方法采用表示 id 的字符串,而不是选择器。线索就在名字中。 querySelectorAll
方法接受一个表示选择器的字符串,但它返回一个nodeList,因此你必须像数组一样循环它。
您调用的javascript_property
属性名称需要与CSS属性名称匹配(带连字符的单词转换为camelCase)(因此它应该是"color"
)。
您提供的值需要与CSS属性值匹配,而不是整个规则(所以"red"
)。
然而,这些都不是纯JavaScript。它是DOM(来自Selectors API的querySelectorAll
除外)。