-3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script language="javascript" type="text/javascript">

function setFont() {
   var i;
   for ( i = 0; i < document.all.length; i++) {
      document.all[i].style.fontFamily = "Verdana";
      document.all[i].style.fontSize = "16";
      document.all[i].style.color="black";
   }
};


function abc(a) {
    alert(a);
    ansArray = ['a'];
    for (i = 1; i <= a; i++) {
        document.write('<input type = "button" value = "a">');
        document.write('<input type = "button" value = "b">');
    }
    var myButton = document.getElementsByTagName("input");
    //alert(myButton.length);
    myButton[0].onclick = function() {
        if (ansArray[0] == 'a') myButton[0].style.backgroundColor = "green";
        else myButton[0].style.backgroundColor = "red";
    };
    myButton[1].onclick = function() {
        if (ansArray[0] == 'b') myButton[1].style.backgroundColor = "green";
        else myButton[1].style.backgroundColor = "red";
    };
};​

setFont();
</script>
</head>

<body onload="Javascript:abc(2)">
hello
</body>
</html>

onclick 函数在 IE 中不起作用,但在 chrome 和 firefox 中可以正常工作。我找不到错误。为什么正常功能不起作用。函数加载内容,但单击前两个为其编写事件处理程序的按钮不会仅更改 IE 中的按钮颜色。请帮助我...在此先感谢

4

2 回答 2

0

快速谷歌搜索表明问题在于您在页面加载后使用 document.write,因此它也在擦除 dom。您应该避免在页面加载后调用的函数中使用它。

来源: http ://sitr.us/2012/09/04/monkey-patching-document-write.html

我没有IE,所以无法测试它。

于 2012-10-25T06:21:38.703 回答
0

这里的问题是使用document.write显然也会覆盖 JavaScript。如果你切换document.write()document.body.innerHTML +=你的问题就解决了。您的后两个按钮不适用于该代码,因为您正在调用 button 0and 1,而后两个是3and 4

于 2012-10-25T06:13:24.147 回答