递归的时候如果有返回值,需要return 返回,否则返回的是undefined
<script>
function findClass(data,_class) {
if($(data).hasClass(_class)){
alert($(data).hasClass(_class));
return data.attr("class");
}else{
if(data[0].tagName == "BODY"){
return false;
}else{
//递归
return findClass($(data).parent(),_class);
}
}
}
$(document).ready(function(){
var result = findClass($('span'),'a1');
alert(result);
});
</script>
这是因为每次递归,就相当于调用一个函数,最后一次调用返回的结果需要层层返回,比如下面,如果调用a(),b(),c()的时候不加return,那么c()返回的值就无法返回到最初调用的findClass()中。
function findClass() {
if(){
retur