select动态添加option出错

Lisen_1987 2009-03-14 11:35:54
我调试了好久,但是还是出错~~我都要崩溃了,该改的都改了,怎么还是出错呢?

function AddOption()
{
var sltObject=document.getElementById("sltHeader");
for(var i=1;i<=124;i++)
{
var opt=new Option(i,"i");
sltObject.options[i-1]=opt;
}
}



<select id="sltHeader" onchange="AddOption();" class="select">
</select>


select的事件我改成onchange,原先是在最后用onload,但是没有反应
我把这段代码分离出来调试,现在出现了“options为空或不是对象的错误”,但是只看代码我实在看不出哪里还有问题啊?
而且,如果加到我原来的js文件,连提示错误都没有,那里我是用onload事件进行调用的
...全文
255 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sd5816690 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Lisen_1987 的回复:]
我是把这个方法写在外部JS文件中的,用 <script>在select控件加载完成之后的位置调用出来

HTML code
<select id="sltHeader" class="select">
</select>
<script type=".." language="..">
window.onload=AddOption();
</script>
[/Quote]

onload=AddOption;
后面是方法名,不能带括号
polimo 2009-03-16
  • 打赏
  • 举报
回复


<!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=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function AddOption(){
var sltObject=document.getElementById("tes1");
for(var i=1;i<=124;i++){
var opt=new Option(i,""+i+"");
sltObject.options[i-1]=opt;
}
}

</script>

</head>

<body onload="AddOption()">

<select id="tes1">

</select>

</body>
</html>

Lisen_1987 2009-03-16
  • 打赏
  • 举报
回复
我是把这个方法写在外部JS文件中的,用<script>在select控件加载完成之后的位置调用出来

<select id="sltHeader" class="select">
</select>
<script type=".." language="..">
window.onload=AddOption();
</script>
sd5816690 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 Lisen_1987 的回复:]
用你的这种方法的代码运行之后提示“尚为实现”~~~这又是哪里出的问题?
[/Quote]
那就改为:

function AddOption(){
var sltObject=document.getElementById("sltHeader");
for(var i=1;i<=124;i++){
var opt=new Option(i,"i");
sltObject.options[i-1]=opt;
}
}
window.onload=AddOption;


如果还提示“尚为实现”,就检查一下变量名或函数名是否冲突
Lisen_1987 2009-03-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sd5816690 的回复:]
<select>中没有数据,不会触发onchange事件
改了一下,在窗口加载完成后调用

HTML code
<select id="sltHeader" class="select">
</select>
<script>
window.onload=function(){
var sltObject=document.getElementById("sltHeader");
for(var i=1;i<=124;i++){
var opt=new Option(i,"i");
sltObject.options[i-1]=opt;
}
}
</script>
[/Quote]

用你的这种方法的代码运行之后提示“尚为实现”~~~这又是哪里出的问题?
joker_yao 2009-03-14
  • 打赏
  • 举报
回复
function AddOption()
{
var sltObject=document.getElementById("sltHeader");
var length = sltObject.options.length;
for(var i=0 ;i< length ;i++)
{

sltObject.options[i].innerText = "i";
sltObject.options[i].value = i;
}
}

//不知道你的最终目的是什么
fulianglove 2009-03-14
  • 打赏
  • 举报
回复
也可初始就给一个空值<option value=""></option>这样比较好
sd5816690 2009-03-14
  • 打赏
  • 举报
回复
<select>中没有数据,不会触发onchange事件
改了一下,在窗口加载完成后调用

<select id="sltHeader" class="select">
</select>
<script>
window.onload=function(){
var sltObject=document.getElementById("sltHeader");
for(var i=1;i<=124;i++){
var opt=new Option(i,"i");
sltObject.options[i-1]=opt;
}
}
</script>
stonehy520 2009-03-14
  • 打赏
  • 举报
回复
帮顶

52,782

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧