2013-08-20 25 views
0

getElementId function回报:设置变量从一个回调函数

function getIdElements(idname, callback) { 
    callback(document.getElementById(idname)) 
}; 

我想用它这样,但plLen得到undefined

var plLen = getIdElements("length", function(e){return e.textContent}); 

我希望如果有人能解释得这样深尽可能。谢谢。

回答

4

你可以简单的返回值回调回报:

function getIdElements(idname, callback) { 
    return callback(document.getElementById(idname)); 
} 

这几乎是一样的,从回调获得的返回值,并将其返回。这里有一个详细的版本:

function getIdElements(idname, callback) { 
    var element = document.getElementById(idname); 
    var callbackRetrunValue = callback(element); 
    return callbackRetrunValue; 
} 

在您的代码:没有return价值,您从getIdElements读出的值只是undefinedWhat does javascript function return in the absence of a return statement?

+0

伟大的,但我想知道为什么我的版本是不工作如我所料。 – Johnny

+0

@Johnny:因为你不返回'callback'返回的值。你只需忽略'callback'的返回值。 –

+0

确实如此,但是我从'getIdElements'内的其他函数返回的内容不应该与我在内部返回的值关闭? – Johnny

相关问题