javascript函数返回未定义的值,即使值显示在console.log中
我遇到了一个非常恼人的问题,每次函数返回一个未定义的值,即使console.log总是在进入第一个if语句时显示有一个值 这是我的职责javascript函数返回未定义的值,即使值显示在console.log中,javascript,Javascript,我遇到了一个非常恼人的问题,每次函数返回一个未定义的值,即使console.log总是在进入第一个if语句时显示有一个值 这是我的职责 function getElementIdentifier(elem, domSelector) { if(elem.getAttribute('id') !== null) { console.log('here'); return elem.id + ' ' + domSelector; } else {
function getElementIdentifier(elem, domSelector) {
if(elem.getAttribute('id') !== null) {
console.log('here');
return elem.id + ' ' + domSelector;
} else {
getElementIdentifier(elem.parentNode, elem.tagName + ' ' + domSelector);
}
}
这就是我所说的
getElementIdentifier(elem, '');
这里有一把小提琴来复制它。谢谢@adeneo嗯。。。试试这个:
function getElementIdentifier(elem, domSelector) {
if(elem.getAttribute('id') !== null) {
console.log('here');
return elem.id + ' ' + domSelector;
} else {
//return the recursion returned value (sounds like inception) but
//you are expecting a value from this function...
return getElementIdentifier(elem.parentNode, elem.tagName + ' ' + domSelector);
}
}
嗯。。。试试这个:
function getElementIdentifier(elem, domSelector) {
if(elem.getAttribute('id') !== null) {
console.log('here');
return elem.id + ' ' + domSelector;
} else {
//return the recursion returned value (sounds like inception) but
//you are expecting a value from this function...
return getElementIdentifier(elem.parentNode, elem.tagName + ' ' + domSelector);
}
}
如果以自递归方式调用,则函数不会返回值。您应该将return语句添加到算法的另一个分支中
function getElementIdentifier(elem, domSelector) {
if(elem.getAttribute('id') !== null) {
return elem.id + ' ' + domSelector;
} else {
return getElementIdentifier(elem.parentNode, elem.tagName + ' ' + domSelector);
}
}
如果以自递归方式调用,则函数不会返回值。您应该将return语句添加到算法的另一个分支中
function getElementIdentifier(elem, domSelector) {
if(elem.getAttribute('id') !== null) {
return elem.id + ' ' + domSelector;
} else {
return getElementIdentifier(elem.parentNode, elem.tagName + ' ' + domSelector);
}
}
您错过了第二个分支中的返回状态,您检查了elem.getAttribute'id',但尝试返回elem.id-do next return+elem.id+''+domSelector;似乎工作正常->@null元素正在传入parametr@VasilVanchuk我在调用它自己,所以不需要返回这个。为什么它会返回递归的结果,如果在下一次迭代中满足条件,它将返回一些内容。您在第二个分支中错过了返回状态,并且您检查了elem.getAttribute'id',但尝试返回elem.id-do next return+elem.id+''+domSelector;似乎工作正常->@null元素正在传入parametr@VasilVanchuk我在调用它自己,所以不需要返回这个。为什么它会在递归时返回结果,如果在下一次迭代中满足条件,它会返回一些东西。