Javascript jQuery—选择名为ajax的文档

Javascript jQuery—选择名为ajax的文档,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有两个文件:parent.html和child.html parent.html使用jquery ajax$.get/$.post调用child.html 现在,在child.html中,我希望不使用iframe访问parent.html 命令如 $("#id", window.parent.document).doSomething(); 不起作用。如何实现这一点?如果您使用子窗口作为父窗口,则可以使用window.opener window.opener.$("#id

我有两个文件:parent.html和child.html

parent.html使用jquery ajax$.get/$.post调用child.html


现在,在child.html中,我希望不使用iframe访问parent.html

命令如

$("#id", window.parent.document).doSomething(); 

不起作用。如何实现这一点?

如果您使用子窗口作为父窗口,则可以使用window.opener

         window.opener.$("#id").doSomething();
如果您正在parent.html中加载child.html,那么您只需使用

            $("#id").doSomething();

因为在parent.html中加载的Child.html也是parent.html的一部分

如果使用$.load/$。如果要将Child.html的内容加载到parent.html中的现有元素中,那么$'id'就足够了

如果您从parent.html发出ajax请求,您将收到Child.html的html标记。这与打开子窗口非常不同,子窗口可以与其父窗口交互

在这种情况下,child.html上的javascript将不会运行,因为它从未加载到浏览器窗口中。如果要执行代码,必须使用Eval手动执行


听起来你需要重新思考你的页面是如何互动的。ajax的正常使用情况是异步拉入数据。如果您想引入功能,请查看require.js之类的库,这取决于您何时尝试访问$parent\u id

如果您直接在child.html中的某个脚本标记中调用$parent_id,那么它将不起作用,因为您还没有加载html

如果它是加载子项后事件调用的结果,那么它应该可以工作

例如,这应该起作用:

<html>
<head>
<script src="http://code.jquery.com/jquery-2.0.0.min.js"></script>
<script>
    $(function() {
        var child_html = "<button onclick=\"$('#update_me').html('hello!')\">click me!</button>";
        $("#place_for_child").append(child_html);
    });
</script>
</head>
<body>
<div id="update_me"></div>
<div id="place_for_child"></div>
</body>
</html>
变量child_html可以从单独的文件加载


这是child.html中的.

,我想访问parent.html>>在这里更具体一些。我相信这里有一个架构问题,而不仅仅是您发布的用例。请在jsfiddle中发布示例代码,这将提供真正的帮助。如果您没有使用iframe/window,那么您可以说$'id',您可以分享使用选择器时如何加载元素吗?