鍍金池/ 問答/HTML/ 這段代碼的運行結(jié)果為什么是undefined

這段代碼的運行結(jié)果為什么是undefined

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <div class="name">
      <div class="">
        <span>
          <img src="" alt="">
        </span>
      </div>
    </div>
  </body>
  <script type="text/javascript">
    function getNum(ele,box,num){
      var num = num ? num : 1;
      if(ele.parentNode == box){
        return num;// num = 4
      }else{
        num++;
        getNum(ele.parentNode,box,num);
      }
    }
    var a = document.getElementsByTagName("img")[0];
    var b = document.getElementsByTagName("body")[0];
    var c = getNum(a,b);
    console.log(c);
  </script>
</html>
回答
編輯回答
青黛色

你else也要return getNum
另外 var num = num ? num : 1 最好寫成 function(ele,box,num = 1){}

2018年8月6日 09:22
編輯回答
貓館
<script>
//假設(shè)elem是target的意向父元素
function getParentOfBodyNum( elem, target, num ) {
    var num = num ? num : 1;
    if ( elem.parentNode == target ) {
        document.write( "一共查找" + num + "次");//在html中,如果單單return num,并沒有可見結(jié)果
    } else {
        num ++;
        return getParentOfBodyNum( elem.parentNode, target, num );
    }
}
var image = document.getElementsByTagName( "img" )[ 0 ];
var body = document.getElementsByTagName( "body" )[ 0 ];
getParentOfBodyNum( image, body );
</script>
2017年3月11日 21:17
編輯回答
風(fēng)畔
function getNum(ele,box,num){
        var num = num ? num : 1;
        if(ele.parentNode == box){
            return num;// num = 4
        }else{
            num++;
            return getNum(ele.parentNode,box,num);
        }
    }
    var a = document.getElementsByTagName("img")[0];
    var b = document.getElementsByTagName("body")[0];
    var c = getNum(a,b);
    console.log(c);

不符合條件的話沒return出去東西啊

2018年2月22日 18:49