innerHTML不刷新IE9上的显示

时间:2012-06-24 11:16:05

标签: javascript internet-explorer-9

初学者Javascript问题。

当我设置元素的innerHTML字段时 - 它不会引用显示,直到我在页面中向上和向下滚动。这只发生在IE9中

这是我的代码:

<ul id="zzz">
<li>
    <input title="Delete" name="DeleteFiles" value="a5e342fd-9180-416b-9938-e66218f275ee"
        id="DeleteCb" onchange="SetDelete(DeleteCb,DeleteLabel)" type="checkbox">  <span id="DeleteLabel" > </span>
    <a href="MyJavaTest_files/_MG_0126.jpg">_MG_0126.jpg</a>
    <br>
    <img style="max-width: 400px;" src="MyJavaTest_files/_MG_0126.jpg">
</li> </ul>

<script type="text/javascript">
SetDelete = function (checkBox, Label) {
    if (checkBox.checked)
        Label.innerHTML="<B>Delete<B>";
    else
        Label.innerHTML = "";}</script>

以下是我点击时的外观:

enter image description here

在这里它是我如何最小化和最大化,或任何其他会导致它重绘该区域。

我也试过jQuery HTML并且得到了同样的行为。

1 个答案:

答案 0 :(得分:1)

您需要使用document.getElementById,因为您传递id值而不是节点本身:

SetDelete = function (checkBox, Label) {
    var checkbox = document.getElementById(checkBox);
    var Label = document.getElementById(Label);
    if (checkBox.checked)
        Label.innerHTML="<B>Delete<B>";
    else
        Label.innerHTML = "";
}

在调用时使用引号:

onchange="SetDelete('DeleteCb', 'DeleteLabel')"

同时避免使用CheckboxLabelSubmitButton等变量名称,因为它们会产生难以找到的问题。