关于select的onchange事件,和以往的帖子不同哦~~

xuhua205 2009-05-21 09:19:42

<html>
<head>
<title>a.html</title>
<script type="text/javascript">
function hello() {
var div = this.document.getElementById("div");

var select1 = this.document.createElement("select");

var option11 = this.document.createElement("option");
option11.setAttribute("id","option01");
var text = this.document.createTextNode("aaaaaaaaaaa");
option11.appendChild(text);

var option12 = this.document.createElement("option");
option12.setAttribute("id","option02");
var text = this.document.createTextNode("bbbbbbbbbbb");
option12.appendChild(text);

select1.appendChild(option11);
select1.appendChild(option12);
select1.setAttribute("onchange","hello();");
div.appendChild(select1);
}
</script>
</head>

<body>
<div id="div">
<select onchange="hello();">
<option value="a">aaaa</option>
<option value="b">bbbb</option>
</select>
</div>
</body>
</html>

这个例子很简单,想实现的效果就是当一个下拉列表的值改变的时候从新在后面用hello()函数生成一个select,
生成的新的select也会有onchange属性,如果改变也想去触发hello函数,但是现在的问题,用JS生成的select
在FF下可以正常触发onchange事件,但是在IE下面却怎么也不触发,想请各位高手帮助分析分析,有什么解决方案?
PS: innerHtml方案在此处不可行
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzj34 2009-05-21
  • 打赏
  • 举报
回复
select1.onchange=function(){hello(select1);};
xuhua205 2009-05-21
  • 打赏
  • 举报
回复
ok,解决了,多谢各位 结贴
cloudgamer 2009-05-21
  • 打赏
  • 举报
回复
select1.onchange=function(){hello(select1);};
xuhua205 2009-05-21
  • 打赏
  • 举报
回复
谢谢各位,但是我的实际应用中的hello()函数中是要传一个参数的,就是要把自己这个select对象传过去,我的方法是hello(this); 如果写成1楼的说法,我参数如何传呢?
shenzhenNBA 2009-05-21
  • 打赏
  • 举报
回复
select1.attachEvent("onchange",function(){hello();});
Mr傅 2009-05-21
  • 打赏
  • 举报
回复
ls正解
Atai-Lu 2009-05-21
  • 打赏
  • 举报
回复
要注意的是select1.onchange=hello;的hello后没有括号
select1.onchange=function(){hello();};这样写也可以
Atai-Lu 2009-05-21
  • 打赏
  • 举报
回复

select1.onchange=hello;

不要用
select1.setAttribute("onchange","hello();");

87,907

社区成员

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

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