Javascript:无法识别div?

Javascript:无法识别div?,javascript,html,css,html-table,getelementsbytagname,Javascript,Html,Css,Html Table,Getelementsbytagname,我一直在使用Javascript来修改我页面的背景和主题,这样它在每个季节都会显示不同的背景,这很有效。现在,因为之前所有的东西都是绿色的(我真是个怪胎),我一直在尝试根据背景将div标签的字体颜色更改为可读的颜色(现在我在夏季背景上使用紫色,rgb(128,0,128)但是如果有人认为有更好的颜色,请告诉我),而且效果很好,使用这些行: var divs = window.parent.document.getElementsByTagName('div'); for (var i = 0;

我一直在使用Javascript来修改我页面的背景和主题,这样它在每个季节都会显示不同的背景,这很有效。现在,因为之前所有的东西都是绿色的(我真是个怪胎),我一直在尝试根据背景将div标签的字体颜色更改为可读的颜色(现在我在夏季背景上使用紫色,
rgb(128,0,128)
但是如果有人认为有更好的颜色,请告诉我),而且效果很好,使用这些行:

var divs = window.parent.document.getElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
    divs[i].style.color = "rgb(128, 0, 128)";
}
var divs=window.parent.document.getElementsByTagName('div');
对于(变量i=0;i
它确实有效,对于我更改的这些页面(自从我还在测试以来,我没有更改所有页面)。但是,虽然它似乎适用于此页面,但表中的div不受影响(如此div:)


2012年12月16日

那么为什么
标记中的div无法识别呢?我是否应该将表视为过时的(有人告诉我它们是邪恶的),并尝试使用CSS用div格式化一个表

这是因为这些div具有“style”属性,它们覆盖了您用JS指定的属性。但是,最好使用CSS,而不是像@bfavaretto所说的那样使用这种魔法:)


upd。我一点也不正确,事实是,font标记有“style”属性,这些属性覆盖了您分配给其父项的属性,div,,正如Jan Dvorak指出的,您应该真正避免使用字体标记。但即使有了它们,也可以通过CSS来解决:

div, div font {
    color: rgb(128, 0, 128) !important;
}
我还将向主体添加一个季节类(如
),以便根据季节创建多种样式:

.summer div, .summer div font { color: rgb(128, 0, 128) !important; }
.winter div, .winter div font { color: rgb(0, 0, 255) !important; }

目前,由于
标记的原因,此功能不起作用。divs样式受到影响,但是其中的字体标记不允许您查看更改。移除字体标签,你会看到一些东西


话虽如此,您根本不应该使用
标记。告诉我们HTML5将其归类为不符合要求的功能,并且“…真的,不要使用它。”

div的颜色已修改,但文本未修改,这是因为您的文本实际上处于“字体”标记中

我看到您的页面正在引用jquery,请尝试使用以下方法:

$('div,div>font').css('color','rgb(128,0,128)')

不要使用javascript,只使用CSS即可。在body中添加一个季节类,然后添加一个!重要规则。season div.@bfavaretto更好的是,摆脱内联样式,并且
字体标签覆盖了divs样式。而且,桌子不是邪恶的,只是被误解了。然而字体标签是邪恶的,并且使用
!“重要提示”
在大多数情况下都是错误的。@Jan:从现在起我必须使用单一颜色(除非我使用像这里这样的注释,或者两种颜色,另一种颜色用于重要的单词。但就是这样,我就不需要css字体样式或
tags@bfavaretto:我从来没有用CSS做过这件事,坦率地说,我现在正在扩展我对这两种语言的微薄知识><你怎么做?如果你设置一些元素的
样式
from javascript,您正在修改…嗯…它的
样式
属性。您知道,我还没有尝试过这一点,但这似乎是一个很好的建议。我想知道为什么给您a-1的人没有费心解释您的代码在哪里可能会失败_O@gfcf14两个不同的人投了反对票,两个不同的人给出了解释解释是错误的。我给出了-1,因为这是错误的。更改style属性会改变DOM中的样式。哦,是的,我错了。问题是,您将颜色rgb(128,0128)分配给了div元素,而font元素的style属性为绿色(#0f0)颜色!请不要将jQuery添加到此属性。@bfareto jQuery 1.8.3已经存在(虽然未使用)在页面上。啊,抱歉。这没有标记为jquery。最好删除它(或者至少建议删除,或者至少提到它应该被删除)
font
元素你真的需要
!important
来覆盖
font
颜色的样式吗?不。但是我假设标记很乱,只是想确定一下。这会覆盖除内联!重要,或更高权重选择器中的!重要之外的任何内容。好的,我明天会研究这个,since我多次收到同样的建议。谢谢大家的意见!我会让你们知道事情的进展
$('div,div>font').css('color','rgb(128,0,128)')