假设所有的框架都在同一个域中,我需要从给定的节点(或文档)开始,并搜索具有给定 ID 的元素。如果在当前文档中找不到,我需要递归(广度优先)搜索所有后代 iframe。
除非我遗漏了一些陷阱,否则我确定我可以编写此函数,但我确定有人已经完成了。
我没有在我的应用程序中使用 jQuery,所以虽然对其他 SO 读者来说这很好,但对我没有帮助。但是,我确实使用 Prototype,并且可以假定所有后代 iframe 都将包含原型(prototype)。
有什么建议吗?
最佳答案
我想你可以像这样递归地得到它:
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/
关于javascript - 通过框架通过ID查找后代元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6527434/