我有一个javascript函数的范围问题

时间:2011-09-06 00:29:03

标签: javascript scope

变量checkedones未传递给AJAX.Updater。

item.value正在报告一个值,所以我知道应该有一些东西,但是当我到达最后一个警报时,我只是留下了t pland。

如何修复/改进?

    function sendemail(){
        var checkedones='';
        var i= $$('.emailer');
        i.each(function(item)
                {

                   if(item.checked){
                    alert(item.value);
                    alert(item.checked);
                    var checkedones = checkedones + item.value + ',';   
                  }
                }
        )
        alert(checkedones);
        new Ajax.Updater('asdfa', 'pages/domailing.php', {
     method:'post',evalScripts:'true' ,parameters: {
  subject1:$('subject1').value,
subject2:$('subject2').value,
body:tinyMCE.get('emailbody').getContent(),
value:checkedones},
evalJS:'force',
onComplete:function(){}
        });
    }

1 个答案:

答案 0 :(得分:2)

尝试更改:var checkedones = checkedones + item.value + ',';

至:checkedones += (item.value + ',');

你在循环中使用var重新声明了。