我的javascript在chrome中不起作用

时间:2013-06-03 05:36:51

标签: javascript google-chrome

我有一个java脚本女巫在Firefox和IE中正常工作,但它在chrome中不起作用! 我想当我点击按钮它向我显示表。如果我使用chrome并点击它加载表,但我看不到整个表因为它的滚动无法正常工作。 这是我的剧本:

function toggle_it(itemID) {
    if ((document.getElementById(itemID).style.display == 'none'))
    {
        document.getElementById(itemID).style.display = 'inline';
    } else {
        document.getElementById(itemID).style.display = 'none';
    }
}

<tr class="query-box">
    <td width="30%">&nbsp;</td>
    <td><p align=right><a href="#" onClick="toggle_it('mytable id')"><img border="0" 
                                                                          src="mypicbutton.gif">&nbsp;More...</a>&nbsp;</p></td>
</tr> 

2 个答案:

答案 0 :(得分:3)

您将表格的display设置为inline,但这不是表格的正常display;法线是table。但是,要让toggle_it处理任何类型的元素,请将其设置为'',这会使其表现得好像您根本没有设置display一样,对于任何类型的元素,默认为display

function toggleIt(id) {
    var element = document.getElementById(id);
    if(element.style.display === 'none') {
        element.style.display = '';
    }else{
        element.style.display = 'none';
    }
}

正如您所看到的,我还以其他方式清理了一些代码。

答案 1 :(得分:0)

我怀疑问题是Chrome为style.display返回的值。请尝试以下方法:

function toggleIt (id) {
  var el = document.getElementById (id);
  el.style.display = el.style.display == 'none' ? '' : 'none';
}

通过测试none的相等性,无论style.display

的初始值如何,此代码都应该有效