先看两个 例子:
例一:
<
script
language
="javascript"
>
...
function addChange(id,ds)

...{
var sid = document.getElementById(id);
sid.onchange = new Function("dds('"+ds+"')");
}
function dds(d)

...{
document.getElementById("xx").innerHTML = d;
}
</
script
>

<
a
href
="javascript:addChange('s','werdsf')"
>
adfad
</
a
>
<
select
name
="s"
id
="s"
>
<
option
value
="1"
>
1
</
option
>
<
option
value
="2"
>
2
</
option
>
</
select
>
<
div
id
="xx"
></
div
>
例二:
<
script
language
="javascript"
>
...
function addChange(id,ds)

...{
var sid = document.getElementById(id);

sid.attachEvent("onchange",function ()...{dds(ds)});
}
function dds(d)

...{
document.getElementById("xx").innerHTML = d;
}
</
script
>

<
a
href
="javascript:addChange('s','werdsf')"
>
adfad
</
a
>
<
select
name
="s"
id
="s"
>
<
option
value
="1"
>
1
</
option
>
<
option
value
="2"
>
2
</
option
>
</
select
>
<
div
id
="xx"
></
div
>
这两个例子都是给事件加参数的方法.所不同的是,例一中:用的是new Function,例二中用的是attachEvent.
如果没有参数,则在例一中应改为:sid.onchange = dds;在例一中也可以这样写:sid.setAttribute("onchange",function (){dds(ds)});
注意,这里的dds,不能带参数,不能带(),他表示的是这个把这个函数赋给onchange事件,如果带了括号,就表示把这个函数dds的返回值赋给onchange事件,这是不对的,因为,我们不能把一个值赋给一个事件.例二中也是同样的道理