2013-08-20 53 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

相關問題