Javascript:无法识别Div

Javascript: Divs not recognized?

本文关键字:识别 Div Javascript      更新时间:2023-09-26

我一直在玩Javascript来修改我的页面的背景和主题,http://www.gfcf14greendream.com/,这样它在每个季节都会显示不同的背景,这很有效。现在,由于以前所有的东西都是绿色的(我是一个怪胎),我一直在尝试根据背景将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)";
}

它确实有效,对于我更改的这些页面(由于我仍在测试,所以我没有全部更改)http://www.gfcf14greendream.com/smssender.html,http://www.gfcf14greendream.com/employmentassistant.html。但是,虽然它似乎适用于这个页面,http://www.gfcf14greendream.com/programs.html,表中的div不受影响(如下面的div:)

<td align="center">
    <div style="text-align: center; color:#00FF00; font-size: 15px">
        <font color="#00FF00">December 16th, 2012</font>
    </div>
</td>

那么,为什么<table>标签中的div没有被识别呢?我是否应该认为表已经过时(有人告诉我它们很邪恶),并尝试使用CSS用div格式化表?

由于<font>标记的原因,目前这不起作用。div样式受到了影响,但是其中的字体标记不允许您看到更改。删除字体标记,您应该会看到一些内容。

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

正如Jan Dvorak所指出的,您应该真正避免使用字体标记。但即使有了它们,也可以通过CSS:来解决
div, div font {
    color: rgb(128, 0, 128) !important;
}

我还会在正文中添加一个季节类(如<body class="summer">),这样我就可以根据季节创建多种样式:

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

这是因为这些div具有"style"属性,它们覆盖了您用JS分配的属性。然而,最好使用CSS,而不是像@bfavaretto所说的那样神奇:)

更新。我一点也不正确,问题是font标记有"style"属性,这些重写属性是您分配给它们的父级div的。

div的颜色被修改了,但文本没有,这是因为你的文本实际上在"font"标签中

我看到你的页面引用了jquery,试着使用这个:

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