我正在尝试使用
JQuery的AJAX方法解决如何解析页面的特定部分.我想做的是这样的:
$.ajax({ url: "page-to-load.htm",dataType: "html",success: function (response) { var html= $(response); var content = html.find("#main"); var title = html.find("title"); var nav = html.find("ul.nav"); } });
我知道我可以使用[container] .load()加载特定的页面部分,但是这将(据我所知)为我想要加载的每个页面部分创建一个请求.
在我的示例代码中,html对象似乎是一个HTML元素数组,但find()返回的每个对象都是null.搜索到的元素确实存在于目标页面中.
我错过了一些明显的东西,或者这不是JQuery可以处理的东西吗?
解决方法
这很有效.使用.load和特殊的url语法将所需页面的一部分放入临时div中.无论你想要什么,都可以使用内部html.
$(function(){ var tempDiv = $("<div />"); tempDiv.load('index.html #target-element',function(){ alert(tempDiv.html()); }); });
这是一个没有url语法的示例,因此您可以使用整个页面.您可以按照您在问题中尝试的方式取出标题…
$(function(){ var tempDiv = $("<div />"); tempDiv.load("page-to-load.htm",function() { var content = tempDiv.find("#main"); var title = tempDiv.find("title"); var nav = tempDiv.find("ul.nav"); }); });