如果取消注释body.children().each(calc_deep(1));
然后我得到TypeError: Object [object Window] has no method 'attr'
在parseInt(deepest.attr('deep'))
字符串,但不取消注释,你可以检查控制台,你可以拨打deepest.attr('deep')
。那是什么?JavaScript的奇怪行为
var deepest;
var calc_deep = function(i)
{
$(this).attr('deep',i);
if(i>parseInt(deepest.attr('deep')))
deepest=this;
$(this).children().each(calc_deep(i+1));
}
var find_deepest = function()
{
body=$('body').children().eq(0);
body.attr('deep',0);
deepest=body;
//body.children().each(calc_deep(1));
}
find_deepest();
尝试此处导致错误:http://jsfiddle.net/ – 2012-07-25 22:53:26