初学者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>
以下是我点击时的外观:
在这里它是我如何最小化和最大化,或任何其他会导致它重绘该区域。
我也试过jQuery HTML并且得到了同样的行为。
答案 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')"
同时避免使用Checkbox
,Label
,Submit
,Button
等变量名称,因为它们会产生难以找到的问题。