我有以下代码:
var select = document.getElementById('test');
select.onchange = (function() {
alert(select.options[0].value);
})();
我正在尝试做这项工作,但没有运气。我希望这个匿名函数在加载时触发,然后应该对change事件起作用。谁能解释一下为什么它不起作用?
答案 0 :(得分:1)
问题是你们都定义了一个函数并在之后立即调用它,将结果分配给onchange
。只需删除parens来指定一个函数:
select.onchange = function() {
alert(select.options[0].value);
};
如果你想立即触发这个函数,将整个表达式包装在parens中,然后调用它:
(select.onchange = function() {
alert(select.options[0].value);
})();
...由于赋值操作的结果是赋值,在这种情况下,它是一个函数。
答案 1 :(得分:1)
答案 2 :(得分:0)
您无法分配该功能并同时调用该功能。它没有任何意义。首先分配它:
var select = document.getElementById('test');
select.onchange = function() {
alert(select.options[0].value);
};
其实你在JSFiddle的例子很好。 ; - )
然后,如果你想在页面加载时调用它,只需执行它,但在分配之后;
select.onchange();