Jquery 使用Ajax获取页面的一部分,但不使用.load

Jquery 使用Ajax获取页面的一部分,但不使用.load,jquery,html,ajax,Jquery,Html,Ajax,我在这里看到了很多类似的例子,但似乎无法调整它们以适合我。我正在通过从其他URL加载内容来创建登录页。但我不想要整个html内容,只想要一个名为“主包装器”的div中的内容。我没有使用.load(),因为我想在divs load之后运行一些代码,而.load()导致javascript无法工作时出现其他一些问题 这段代码确实加载了内容,但它没有查找并加载.main包装器div,而是加载了整个页面。我尝试了一千种不同的方法,但就是想不出来 $.ajax({ type: 'GET', url: 'm

我在这里看到了很多类似的例子,但似乎无法调整它们以适合我。我正在通过从其他URL加载内容来创建登录页。但我不想要整个html内容,只想要一个名为“主包装器”的div中的内容。我没有使用.load(),因为我想在divs load之后运行一些代码,而.load()导致javascript无法工作时出现其他一些问题

这段代码确实加载了内容,但它没有查找并加载.main包装器div,而是加载了整个页面。我尝试了一千种不同的方法,但就是想不出来

$.ajax({
type: 'GET',
url: 'mydynamicurl.html',
dataType: "text", // "html"
success: function(response) {
    $('#load').html(response).find('.main-wrapper');
}

}))

可能类似于:
$(响应)。查找('.main wrapper')


您可以将字符串html加载到
$(…)
:)

为什么不使用document.querySelector('.main wrapper')而不是find

如果您试图从页面获取此信息,我相信您需要:
var contentRequired=$(response.find('.main wrapper').html()
然后,通过:
$(“#load”).html(contentRequired)设置此html

编辑:我只是想澄清一下,我认为它以前不起作用的原因是,您将“#load”div的HTML值设置为响应的HTML值。然后,在此基础上,搜索“#load”div以查找“main wrapper”内容

或者,你可以写:

$('#load').html($(response).find('.main-wrapper').html());
然而,我发现这本书读起来并不好。我必须编辑这个答案并进行更新,因为我忘记了将find方法的返回值设置为HTML内容的返回值

编辑: 如果您的div是“顶级元素”,那么“Find”方法似乎不起作用。相反,应使用“过滤器”方法,如下所示:

$('#load').html($(response).filter('.main-wrapper').html());

打开包装是为了别的东西。我把它从我的问题中删除了。基本上只需要获取.main wrapper div,而不是整个页面不熟悉它。我试过了,但结果是一样的。加载整个页面。document.querySelector(“.main wrapper”).innerHtml()?这很有意义,我将两者绑定在一起,但运气不佳。未在中导入任何内容。控制台中没有错误。我记录了变量,它只是作为未定义的返回。从,$(response).find('.main wrapper')记录变量是否返回未定义的对象?它是否返回未定义的对象。我需要所有这些都是文档就绪调用吗?啊,所以,我已经通过调试为您的网站解决了。这是因为您的div是顶级元素。使用“过滤器”而不是“查找”。例如,change var content=$(response).find('.main wrapper').html();to var content=$(response.filter('.main wrapper').html();在本地运行时,这对我很有用。事件绑定在jQuery中的工作方式,以及您的内容可能不绑定的原因