return返回值为undefined

写了一个查找父元素为form的方法

function find_form(obj) {
    var parent_element=obj.parentElement;
    if (parent_element.nodeName==="FORM"){
        console.log(parent_element);
        return parent_element;
    }
    else {
        find_form(parent_element);
    }
}

在外部用var form_element=find_form(obj);来调用
console.log(parent_element);打印出form元素了
但是console.log(form_element);却是undefined

求解是哪个地方没对呢?

阅读 7.2k
2 个回答

你没有返回递归的结果啊。。如果进入else你就没有返回值了。

function find_form(obj) {
    var parent_element=obj.parentElement;
    if (parent_element.nodeName==="FORM"){
        console.log(parent_element);
        return parent_element;
    }
    else {
      return  find_form(parent_element);
    }
}
else {
        return find_form(parent_element);
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题