假设所有帧都在同一个域上,我需要从给定节点(或文档)开始,并搜索具有给定ID的元素。如果在当前文档中找不到它,我需要递归(广度优先)搜索所有后代iframe。
除非我遗漏了一些问题,否则我确信我可以编写这个函数,但我确信有人已经完成了它。
我不在我的应用程序中使用jQuery,所以尽管对于其他SO读者来说这很好,但它对我没有帮助。但是,我确实使用Prototype,并且可以假设所有后代iframe都包含原型。
有什么建议吗?
答案 0 :(得分:5)
我认为你可以像这样递归地得到它:
function findElement(wdw, id)
{
var el = wdw.document.getElementById(id);
if(el) return el;
for(var i=0; i<wdw.frames.length; i++)
{
var el = findElement(wdw.frames[i].window, id);
if(el) return el;
}
return null;
}
并将其称为:
findElement(window, "aa");
这里是jsFiddler链接:http://jsfiddle.net/QxL7z/2/