Javascript 使用CSS获取HTML DOM
CSS可以通过一个ID、类或伪选择器在元素中应用样式,但我希望得到HTML树,类似于javascript:Javascript 使用CSS获取HTML DOM,javascript,html,css,tree,Javascript,Html,Css,Tree,CSS可以通过一个ID、类或伪选择器在元素中应用样式,但我希望得到HTML树,类似于javascript: <script type = "text/javascript"> window.onload = function () { var div = document.getElementsByTagName ("div"); div[0].style.backgroundColor = "gray"; div[0].st
<script type = "text/javascript">
window.onload = function () {
var div = document.getElementsByTagName ("div");
div[0].style.backgroundColor = "gray";
div[0].style.padding = "20px";
}
</script>
window.onload=函数(){
var div=document.getElementsByTagName(“div”);
div[0].style.backgroundColor=“灰色”;
div[0].style.padding=“20px”;
}
例如:
<style type = "text/css">
div[0] { /* Wrong but i tried :( */
background-color: gray;
padding: 20px;
}
</style>
<div >
<div>...</div>
</div>
div[0]{/*错误,但我已尝试:(*/
背景颜色:灰色;
填充:20px;
}
...
我厌倦了将ID分配给数百万个元素;有什么方法可以做到这一点吗?如果我理解正确,只需使用
div:first child
技术上,您可以使用:
body > div:first-child {
background-color: gray;
padding: 20px;
}
div div:first-of-type {
....
}
这将与文档的
中的第一个div匹配,但我认为这不是您真正想要的,因为这没有多大用处
我认为你最好只使用应该使用的类,而不是将ID分配给许多元素。一般来说,我发现我通常只将ID分配给“页面布局”元素(即定义页面整体结构的元素)然后就用类来做其他的事情。如果你知道你所拥有的元素的类型(如你的例子中所示),并且如果CSS3是你可以使用的一个选项,那么它永远不会变得那么笨重……:
body > div:first-child {
background-color: gray;
padding: 20px;
}
div div:first-of-type {
....
}
但它在IE中不起作用。有关详细信息,请参阅。如果您不知道子元素的类型,它也不会起作用。*:类型的第一个无效。
:nth-child()和:nth-of-type()伪类允许您
使用公式选择图元
语法为:第n个子项(an+b)
,其中用数字替换a
和b
由您选择。例如,:第n个子项(3n+1)
选择第1个、第4个、,
第七等等,孩子
您只需要第一个
?[1]。如果您不在选择器方面提供一点帮助,那么单靠CSS无法完成您的要求。如果有“数百万”元素,JavaScript可能也不是一个好主意。[2]。为什么要为这么多元素分配ID?可能是其他类型的选择器(例如,类或可能与其他内容一起使用的后代)将完成此操作。[3]。您不会手动添加ID或其他任何内容,因此有什么问题?:-)您不应该使用一百万ID;只需将类放在需要不同样式的元素上。您可以将类放在“第一”位置在第一个div上,只需使用该选择器。这将匹配任何其他元素的子元素的第一个
。例如,使用这个它将匹配内部
,因为它是外部
的第一个子元素。