我在这里看到很多类似的例子,但似乎无法调整它们为我工作。我正在通过加载来自其他网址的内容来创建目标网页。但我不想要整个html内容,只是在一个名为'main-wrapper'的div里面。我没有使用.load(),因为我想在div加载后运行一些代码,而.load()导致javascript无法正常工作的其他一些问题。
此代码确实加载了内容,但它不是查找并加载.main-wrapper div,而是加载整个页面。我已经尝试了一千种变化而且无法理解它。
$.ajax({
type: 'GET',
url: 'mydynamicurl.html',
dataType: "text", // "html"
success: function(response) {
$('#load').html(response).find('.main-wrapper');
}
});
答案 0 :(得分:1)
如果您尝试从页面获取此信息,我相信您需要:var contentRequired = $(response).find('.main-wrapper').html();
然后,通过以下方式设置此html:$("#load").html(contentRequired);
编辑:只是为了澄清一下,我之所以认为之前没有工作的原因,是因为您正在设置' #load'的HTML值。 div是响应的那个。然后,在此之后,您正在搜索#load;#load' div找到'主包装'内容。
或者,你可以写:
$('#load').html($(response).find('.main-wrapper').html());
然而,我发现这并没有读到。不得不编辑这个答案并更新,因为我忘了将find方法的返回值设置为HTML内容的返回值。
编辑: 如果你的div是一个顶级元素,那么它似乎就是'查找'方法不起作用。相反,过滤器'应该使用方法,如下:
$('#load').html($(response).filter('.main-wrapper').html());
答案 1 :(得分:0)
可能类似于:$(response).find('.main-wrapper')
您可以将字符串html加载到$(...)
:)
答案 2 :(得分:0)
为什么不使用document.querySelector('。main-wrapper')而不是find?