一个框架内的jQuery访问表

我有一个问题。 我想在框架内选择一个元素(而不是iframe)。 框架的名称是主要的,但我不能添加ID(很难解释,但不可能)。 如何操作该框架内的数据?

我已经尝试了各种不同的东西(也来自stackoverflow),但它们没有用…

渡渡鸟

框架:

    

jQuery代码

 $(document.createElement("tr")) .attr({ id: 'DMbalk' }) .appendTo($('frame[name=main] #header_info tbody')); 

我不能让它以这种方式工作……

game.php代码(主框架)……

  dododedodonl      

噢,我忘了说,这是一个狩猎扩展…

当您的jQuery代码如下所示时会发生什么:

 $(document.createElement("tr")) .attr({ id: 'DMbalk' }) .appendTo($('#header_info tbody', window.frames[0].document)); 

jQuery函数($)的第二个参数是运行选择的上下文,默认情况下是当前文档。 指定第二个参数会将选择器的上下文移动到第一帧。

jQuery API文档 :

默认情况下,选择器在DOM中从文档根开始执行搜索。 但是,通过使用$()函数的可选第二个参数,可以为搜索提供备用上下文

这里提出了一个类似的SO问题: 在另一个框架的上下文中运行JQuery

希望这有帮助!

编辑:好的,希望这是答案。 我发现jQuery是在加载帧之前触发的; 结果,我收到一个错误,说无法找到框架“main”。 所以我在启动脚本中添加了一个setTimeout(2秒),我可以看到正在创建的

。 这是我正在使用的HTML:

             

框架加载到静态HTML文件(我不是PHP人员,所以我使用静态HTML)。 在我添加setTimeout调用之前,帧会加载,不会创建新的

,我会看到一个JavaScript错误。 我添加了setTimeout ,现在工作正常。 我还必须改变我引用框架的方式 – 使用索引似乎不起作用,但是通过名称引用它可以正常工作。 不知道为什么会这样。

所以希望这会有所帮助。 如果您仍有问题,请告诉我,我会再试一次。 :) 祝好运!

您也可以选择使用属性: $("frame[name=main]")

如果只有一个帧,请使用索引0并将jquery放在帧内

 window.frames[0].$("#test");