2017-05-17 39 views
0

爲什麼function(){ return element.innerHTML }返回undefined爲什麼函數返回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

沒有,但你不能從你以爲你是函數返回。 – adeneo

+0

你沒有返回任何東西https://jsfiddle.net/jondion/0ad7akkb/ –

+0

到JSFiddle的鏈接很好,但你也必須在問題本身中包含完整的代碼。使用代碼片段功能使其在問題中可運行。 – JJJ

回答

2

你的功能不返回任何東西,也返回裏面的forEach不返回值。它分配給一個變量和函數返回它liek

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