setInterval 传参数问题

l206xd 2014-08-15 09:57:47
            function timer(div){
inputs = div.getElementsByTagName('input');
if(inputs[0].value == "")
return ;
window.setInterval(function(){
alert(inputs[0].value);
}, inputs[2].value * 1000);
}


inputs我定义为全局变量了.
在setInterval的匿名函数里怎么都是空值....在外面就能访问正常
...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
XZowie 2014-09-11
  • 打赏
  • 举报
回复
看了樓主的js,timer 函數裡的 inputs 不該使用全局變量 加上var 就可以正常了
l206xd 2014-09-11
  • 打赏
  • 举报
回复
引用 1 楼 superwfei 的回复:
            function timer(div){
                inputs = div.getElementsByTagName('input');
                if(inputs[0].value == "")
                    return ;
                window.setInterval(function(){
                    inputs = div.getElementsByTagName('input'); // 你的 inputs 变量是个局部的?
                    alert(inputs[0].value); // 如果确认是全局的,用 window.inputs 试下?
                }, inputs[2].value * 1000);                
            }

        <script>
            var xmlhttp,
                inputs;
            function ajax(){
                if(window.XMLHttpRequest){
                    xmlhttp = new XMLHttpRequest();
                }
                else{
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                return xmlhttp;
            }
            function submit(){
                divs = document.getElementsByName('t');
                for(var i = 0;i < divs.length;i++){
                    timer(divs[i]);
                }
                
            }
            function timer(div){
                window.inputs = div.getElementsByTagName('input');
                window.setInterval(function(){
                    alert(window.inputs[0].value);
                }, window.inputs[2].value * 1000);
            }
            
            function sendData(){
                xmlhttp = ajax();
                xmlhttp.open("POST","tiebaSend.do",false);
                xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
                var s = "cookie=" + this.cookie + "&";
                var s = s + "para=" + this.para;
                xmlhttp.send(s);
                addToTextArea(xmlhttp.responseText);
            }
            
            
            function addToTextArea(s){
                var textarea = document.getElementById('response');
                    textarea.value = textarea.value + s + "\r";
            }
        </script>

还是不行么..
qcxl 2014-08-15
  • 打赏
  • 举报
回复
inputs[2].value 它的值是不是NaN
qcxl 2014-08-15
  • 打赏
  • 举报
回复
我这边试了下,setInterval里是可以取到值的
闪闪放光芒 2014-08-15
  • 打赏
  • 举报
回复
代码都帖出来现在看是没有问题
文盲老顾 2014-08-15
  • 打赏
  • 举报
回复
            function timer(div){
                inputs = div.getElementsByTagName('input');
                if(inputs[0].value == "")
                    return ;
                window.setInterval(function(){
                    inputs = div.getElementsByTagName('input'); // 你的 inputs 变量是个局部的?
                    alert(inputs[0].value); // 如果确认是全局的,用 window.inputs 试下?
                }, inputs[2].value * 1000);                
            }

87,910

社区成员

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

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