2011-07-05 38 views
0

我正在嘗試編寫一個JavaScript函數來解析一點DOM樹並返回它的一部分以進一步解析。儘管逐步完成了似乎工作正常的函數,但函數的返回值對調用語句顯示爲未定義。有沒有辦法來解決這個問題?在javascript函數中返回DOM

from = entityfromid($(value)[0].getElementsByTagName("O1")[0].childNodes[0].childNodes[0].nodeValue).getElementsByTagName("Name")[0].childNodes[0].nodeValue; 

function entityfromid(id) { 
$($(xmlDoc)[0].getElementsByTagName("Entities")[0].childNodes).each(function (index, value) { 
    if(value.getElementsByTagName('Id')[0].childNodes[0].nodeValue == id) { 
     return value; 
    } 
}); 
} 
+1

請張貼您的實際代碼。 – user113716

回答

3

你需要採取return聲明瞭.each()的,而是從你entityfromid函數返回。

function entityfromid(id) { 

    var ret_value; 

    $($(xmlDoc)[0].getElementsByTagName("Entities")[0].childNodes).each(function (index, value) { 
     if(value.getElementsByTagName('Id')[0].childNodes[0].nodeValue == id) { 
      ret_value = value; 
      return false; 
     } 
    }); 
    return ret_value; 
} 

在這裏,當你的結果發現,它將設置ret_value變量的值,並做了return false,它打破了循環。

然後ret_value用於return從您的函數。

+0

謝謝!沒想到從那裏回來導致它不能正常返回功能。 – eyecreate

+0

@eyecreate:不客氣。 – user113716