Javascript CSS style.display不工作

Javascript CSS style.display不工作,javascript,html,css,Javascript,Html,Css,我有下面的JavaScript函数根据列表框选择显示/隐藏表行 function clock_Type(id) { var clockSource = document.getElementById("clockSource"); var clockType = document.getElementById("clockType"); if(id == "1") { if(navigator.appName == "Microsoft Internet

我有下面的JavaScript函数根据列表框选择显示/隐藏表行

function clock_Type(id) {
    var clockSource = document.getElementById("clockSource");
    var clockType = document.getElementById("clockType");

    if(id == "1") {
        if(navigator.appName == "Microsoft Internet Explorer") {
            clockType.style.display = "inline";
            clockSource.style.display = "inline";
        } else {
            clockType.style.display = "table-row";
            clockSource.style.display = "table-row";
        }
    } else {
        clockType.style.display = "none";
        clockSource.style.display = "none";
    }
}
下面是列表框

<select id="clck" name="clock" class="selectStyle" style="width: 155px;" onchange="clock_Type(this.value)">
    <option value="0">Disabled</option>
    <option value="1">Enabled</option>
</select>
当我跟踪代码时,FireFox的执行到达以下部分

clockType.style.display = "table-row";
clockSource.style.display = "table-row";

但该表行不显示。你知道这里有什么问题吗。提前谢谢

clockType和clockSource元素是否具有设置显示样式的css类?在本例中,我尝试删除它并将显示样式设置为内联。

将显示设置为空字符串,而不是指定表行或内联。这将为元素提供默认显示,因此除非指定为“显示”:无;在样式表中,用户代理将协商正确的显示

clockType.style.display = "";
clockSource.style.display = "";
这也消除了执行浏览器检查的需要,这不是一个好的做法

编辑:


我以前误解了你的问题。但是,我测试了您的代码,在FF 3.5.3、Chrome 4、IE8中测试它似乎运行良好。

是否在DOM完全加载之前调用了该函数?此外,尽管这不是问题所在,但您应该使用字符串而不是整数clock_Type1;调用函数@Max-似乎不太可能,它来自onchange事件。@David:不清楚是否是这样:…当我试图从另一个函数调用JS函数clock_Type时…@Max,David:感谢您研究这个问题。我在函数调用中也尝试了字符串。但正如我所提到的,在FF中,执行达到以下代码行。clockType.style.display=表格行;clockSource.style.display=表格行;但我看不到浏览器中的样式变化。@Joel:谢谢你的回答。让我给你更多关于我正在努力做什么的信息。我在页面上有一个选择框时钟和其他表单元素。它的值为“已启用”和“已禁用”。当值为“启用”时,我必须显示两个表行clockType&clockSource,当值为“禁用”时,这些行应该隐藏。正如我提到的,这在时钟选择框的onChange上运行良好。但是当我试图从另一个函数调用JS函数clock_Type时,样式的变化并没有反映出来。从另一个函数调用clock_Type的需要是,我需要用数据库中的值填充表单字段。因此,在填充时钟选择框后,我需要根据时钟值(即启用/禁用)隐藏/显示clockType和clockSource表行。抱歉,我误解了您的问题。@Yaroslav:clockType和clockSource元素没有css类。
clockType.style.display = "";
clockSource.style.display = "";