2016-01-09 11 views
1

我试图使用jQuery的.load() method来动态更改页面内容。我想执行一次检查,看看我试图加载的内容是否真的存在。这里有一个例子,我已经从jQuery的文档采取:在使用.load()方法之前检查另一个页面是否包含元素

$("#new-projects").load("/resources/load.html #projects li"); 

我如何检查,看看是否/resources/load.html实际上包含了#projects li

我知道我们可以从Ajax请求的响应...

$("#new-projects").load("/resources/fail.html", function (response,status,xhr) { 
    if(status=='error') { 
     alert('error'); 
    } 
} 

...但是这似乎只是工作,如果目标文件不存在。

帮助将不胜感激!

在此先感谢。

回答

0

您可以使用通用AJAX而不是load()构建解决方法。

$.get('some/url').done(function(html) { 
    if (!$(html).find('some/selector').length) return; //if element not found, forget it 
    $('some/container').html(html); //if is found, dump the HTML in the container 
}); 
+0

我有困难用这种方法代替HTML的只是一个特定部分的页面上。然而,我用它来检查元素是否被找到,当与'load()'结合使用时,它完成了这项工作。非常感谢! – user2839573

+0

如果我的理解正确,那么这种方法的唯一问题是,您将针对内容触发两个AJAX请求 - 第一个来自我的代码,第二个来自'load()'。祝你好运。 – Utkanos

相关问题