我的递归函数没有返回任何内容
My recursive function isn't returning anything
我正在尝试选择输入的父表单元素。表单元素不一定是直接父节点。目前,这将"未定义"输出到我的日志中。
var anInputElement = document.querySelector(...);
var formElement = getFormElement(anInputElement);
console.log(formElement);
function getFormElement(elem) {
//if we've traversed as high as the `body` node then
//we aint finding the `form` node
if(elem.nodeName.toLowerCase() !== 'body') {
var parent = elem.parentNode;
if(parent.nodeName.toLowerCase() === 'form') {
return parent;
} else {
getFormElement(parent);
}
} else {
return false;
}
}
为什么我在控制台日志中未定义?
不仅仅是
getFormElement(parent);
但
return getFormElement(parent);
和简化,只是为了好玩:
function getFormElement(elem) {
if(elem.nodeName.toLowerCase() !== 'body') {
var parent = elem.parentNode;
return parent.nodeName.toLowerCase() === 'form' ? parent : getFormElement(parent);
}
return false;
}
相关文章:
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 谷歌日历 api 调用可以在角度工厂内返回承诺吗?
- 如何在角度过滤器内返回 html5 音频/视频作为输出
- 需要在悬停时激活动作,并在7秒内返回到原始状态
- Javascript字符串在script标记内返回
- 与承诺内返回和承诺外返回的区别
- 使用 CasperJS 时,是否可以在执行任何内联或外部 Javascript 之前与加载页面的 DOM 进行交互
- 找不到“”;应用程序“;模板或视图.对象{fullName:“template:application”}将不呈现任何内
- 为什么moment()在$q内返回n
- 如何在没有任何内置函数的情况下将元素添加到数组中
- 检查函数是否对数组中的任何项返回true
- 在闭包内返回函数返回undefined
- 如何获得元素id点击没有任何内联函数调用在javascript
- 在javascript/jquery中是否有任何内置功能来过滤邮件,如php's函数(!使用filter_var
- 在JavaScript中过滤数组,而不使用任何内置函数或新数组
- 无法在对象内返回对象.与string.prototype.replace方法不匹配的每个循环的关键字
- Jquery是否有任何内置方法来单独查找可验证的元素?
- 从嵌套函数内返回
- 我试图在不使用任何内置方法的情况下延迟此函数.为什么这行不通呢?
- 如何在不使用javascript中任何内置函数的情况下反转字符串