2011-07-05 5 views
0

DOMツリーの一部を解析し、その一部をさらに解析してさらに解析するためのjavascript関数を作成しようとしています。正常に動作していると思われる関数をステップ実行しているにもかかわらず、関数の戻り値は呼び出しステートメントには定義されていません。これを修正する方法はありますか?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

あなたは.each()の外にreturn声明を取り、代わりにあなたの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が使用されます。

+0

ありがとう!機能から正常に戻らないようにそこから戻ることを期待していませんでした。 – eyecreate

+0

@eyecreate:ようこそ。 – user113716

関連する問題