关于js调用内部函数,并返回值(附代码) 在getInfo函数里,加上alert(x.responseText)能够得到正确的值,但是return后似乎就得不到x.responseText的值,也就是后面的alert(ret)是undefined 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ret当然是undefined...getXmlDoc:function() { var myAjax = new Ajax.Request(this.dsource,{method:'get',onComplete:this.getInfo}); },...这里又没有返回任何值,这样还差不多:getXmlDoc:function() { return new Ajax.Request(this.dsource, {method:'get',onComplete:this.getInfo}); }, 你用的是AJAX吧,这个是异步过程,你要获得responseText的值只能在xmlHttp.onreadystatechange=function(){ if (xmlHttp.readyState==4&&xmlHttp.status==200){ dataCount = xmlHttp.responseText; }}这里获得,否则像你那样调用的话他不等值返回回来程序就执行过去了,当然是undefined了 对shuangbaby: 你那样返回的是一个object,并不是我所需要的ajax请求返回的值对element_wm: 这里用到prototype框架,所以在getInfo()中就能够得到返回值 我在getInfo()函数第一行添上alert(x.responseText)就可以得到需要的值,然后后面再return,在后面调用getInfo()就得不到值了,还请再指教 var SystemInfo = {//数据源dsource:"",setSource:function(x){this.dsource = x;},send:function(){ var myAjax = new Ajax.Request(this.dsource,{method:'get',onComplete:this.getInfo});},getInfo:function(){}}//新实例var dd = new SystemInfo();dd.setSource("http://......");//这里实现委托dd.getInfo = function(res){ alert(res.responseText);//这里添加处理代码};dd.send();//发送OK? 多谢 ,问题已经解决 ...只是似乎这一句var dd = new SystemInfo();在firefox下提示:SystemInfo is not a constructor这样子,删了这句,直接用SystemInfo即可 我看错了,以为你那个是类~`原来是object 有熟悉pop-up窗口的吗? 上十万的节点,该用什么js tree? JS,键功能替换的问题,请大家给看看, 100分,100分,100分 菜鸟提问:在.NET里如何运用JAVESCRIPT,为什么我这里处理没反应 问个弱弱的问题,高手别砸我啊 比较难的问题 一个菜单背景图片显示的问题??? 关于回车的问题请教 用正则表达式怎样限制文本框只能输入6-20位任何字符? 请问怎样把小数取两位小数? === 是什么意思? 求正則表達式,可以馬上給分
...
getXmlDoc:function()
{
var myAjax = new Ajax.Request(this.dsource,{method:'get',onComplete:this.getInfo});
},
...
这里又没有返回任何值,这样还差不多:getXmlDoc:function()
{
return new Ajax.Request(this.dsource, {method:'get',onComplete:this.getInfo});
},
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState==4&&xmlHttp.status==200){
dataCount = xmlHttp.responseText;
}
}
这里获得,否则像你那样调用的话他不等值返回回来程序就执行过去了,当然是undefined了
你那样返回的是一个object,并不是我所需要的ajax请求返回的值对element_wm:
这里用到prototype框架,所以在getInfo()中就能够得到返回值
我在getInfo()函数第一行添上alert(x.responseText)就可以得到需要的值,然后后面再return,在后面调用getInfo()就得不到值了,
还请再指教
//数据源
dsource:"",
setSource:function(x)
{
this.dsource = x;
},
send:function()
{
var myAjax = new Ajax.Request(this.dsource,{method:'get',onComplete:this.getInfo});
},
getInfo:function(){}
}
//新实例
var dd = new SystemInfo();
dd.setSource("http://......");
//这里实现委托
dd.getInfo = function(res){
alert(res.responseText);//这里添加处理代码
};dd.send();//发送
OK?
SystemInfo is not a constructor这样子,删了这句,直接用SystemInfo即可