使用jQuery的.load()加载页面片段但只获取选择器的内容

doi*_*tin 4 jquery jquery-load

我正在使用 jQuery 的.load()页面片段方法来重新加载我的页面的一部分:

$("#submit").click(function() {
    $("#box").load('/ajax/box/ #box');
});
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是这会导致错误,因为在加载内容之后。由于该函数本质上使用.innerHTML它来替换我的div. HTML 结果如下所示:

<div id="box">
    <div id="box">
        <!-- this is my page -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试过使用但删除了父级中的.parent()所有其他s 。div

$("#submit").click(function() {
    $("#box").parent().load('/ajax/box/ #box');
});
Run Code Online (Sandbox Code Playgroud)

本质上,这就是我想要做的(我知道下面的代码是无效的,但这代表了我想要完成的事情):

$("#submit").click(function() {
    $("#box").load('/ajax/box/ $('#box').html()');
});
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我#box替换#box
需要记住的一件事是我无法编辑 HTML,因此这只需要使用 jQuery 来实现。

小智 6

只需添加> *在后面即可#box

$("#submit").click(function() {
    $("#box").load('/ajax/box/ #box > *');
});
Run Code Online (Sandbox Code Playgroud)