2017-05-17 16 views
0

なぜfunction(){ return element.innerHTML }undefinedを返しますか?関数return element.innerHTMLまたはelement.innerTextが未定義の理由は何ですか?

var demo = document.getElementById('demo'); 
demo.innerHTML = endangeredSpecies("Europe", "Cave bear"); 

function endangeredSpecies(continent, species) { 
    var contin = document.querySelectorAll('[data-continent]'); 
    contin.forEach(function(div){ 
    if(div.getAttribute('data-continent') == continent){ 
       var children = [].slice.call(div.children); 
     children.forEach(function(child) { 
        if(child.getAttribute('data-species') == species) { 
       return child.innerText; 
       } 
      }) 
    } 
    }) 
} 

Fiddle

+0

liek機能からそれを返します。 – adeneo

+0

何も返されていません。https://jsfiddle.net/jondion/0ad7akkb/ –

+0

JSFiddleへのリンクは問題ありませんが、質問全体に完全なコードを含める必要があります。コードスニペット機能を使用して質問内で実行可能にします。 – JJJ

答えて

2

あなたの機能も、何も返さ値を返さないforEachの内側には戻りません。それを変数に割り当て、それはしませんが、あなたはあなたがいると思う機能から復帰していない

var demo = document.getElementById('demo'); 
demo.innerHTML = endangeredSpecies("Europe", "Cave bear"); 

function endangeredSpecies(continent, species) { 
    var contin = document.querySelectorAll('[data-continent]'); 
    var val; 
    contin.forEach(function(div){ 
    if(div.getAttribute('data-continent') == continent){ 
       var children = [].slice.call(div.children); 
     children.forEach(function(child) { 
        if(child.getAttribute('data-species') == species) { 
       val = child.innerText; 
       } 
      }) 
    } 
    }) 
    return val; 
} 

JSFIDDLE

関連する問題