Javascript - 无尽的递归函数

时间:2013-06-12 08:15:03

标签: javascript google-chrome dom recursion

我目前正在开发一个Chrome扩展程序,让用户点击一个节点来获取其内容。使用textContent时获取内部文字很简单,但在点击的div中获取图片的网址...

我尝试使用此功能获取img节点,从而能够阅读其href / src

function getimgtag(elem) //elem is the clicked div
{
    for(i=0;elem.getElementsByTagName('div')[i];i++)
    {
        getimgtag(elem.getElementsByTagName('div')[i]);
    }
    if(elem.getElementsByTagName('img')[0])
    {
        localStorage['fus_imgtag']=elem.getElementsByTagName('img')[0];
    }   

}

但它似乎没有结束,我真的不明白为什么。它不应该检查所有div元素并将img中的最后一个localStorage['fus_imgtag']放在哪里吗?

1 个答案:

答案 0 :(得分:2)

您忘记在i中声明var i。如果你没有声明它,它就会变成一个隐式的全局变量,这总是很麻烦,特别是在你的情况下,i应该在每个递归调用的本地作用域。