跪求各位js高手,为什么我在函数外面加了window.onload不能执行,去掉之后函数就可以执行??

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/... <!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>日期选择、复选框、全选</title>
<style>
*{
margin:0;
padding:0;
}
#result{
width:400px;
height:100px;
border:1px solid red;
}
#check {
width:430px;
height:200px;
float:left;
border:1px #99CC33 solid;
}
</style>
</head>

<body>
<div id="check">
您的爱好是:<input type="checkbox" checked="checked" name="hoby" value="足球"/>足球
<input type="checkbox" name="hoby" value="篮球"/>篮球
<input type="checkbox" name="hoby" value="排球"/>排球
<input type="checkbox" name="hoby" value="兵乓球"/>兵乓球
<input type="button" value="选择" onclick="choice()"/>
<div id="result"></div>
</div><!--check end!-->
<script type="text/javascript">
function choice(){
var name=document.getElementsByName('hoby');
var relut=document.getElementById('result');
var str="";
for(var i=0; i<name.length; i++)
{
if(name[i].checked)
{
str+=name[i].value+"、";
}
relut.innerHTML=str;
}

}

</script>

</body>
</html>
展开
 我来答
xi8km9
推荐于2016-03-19 · TA获得超过1086个赞
知道小有建树答主
回答量:688
采纳率:50%
帮助的人:726万
展开全部

因为你加上onload後改变了choice函数所在的作用域

原先的它是绑定到window上的

加上後它就成了普通的内部函数, 故而 onclick=""无法访问到这个函数


你可以

window.onload = function()
{
    window.choice = function()

    {

        ...

    }

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式