2017-05-17 1 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

관련 문제