我试图检查是否采用了一个值,如果是,则跳转到下一个值。这是通过简单的递归
完成的function recur(id){
if($('#'+id).length != 0){ // checking if id exists on page
recur(id++);
}
else{
return id;
}
}
$.(document).ready(function(){
var x = recur(1);
alert(x);
});
但是我收到了这个错误:
x is undefined
return proxy
答案 0 :(得分:2)
您缺少递归调用的return语句:
function recur (id){
if($('#'+id).length != 0){
return recur(id++); // add return here
}
else{
return id;
}
没有它,只有终止案例会返回一个值,但它不会传递给堆栈。因此,最顶级的recur
调用确实会返回undefined
。
我个人不会使用递归,而是迭代地执行:
function nextId(id) {
while ($('#'+id).length != 0) {
++id;
}
return id;
}