9

请有人告诉我如何使用 JQuery ajax() 方法从另一个页面上的 div 中提取内容?

另一个页面.html

<html>
<head></head>
<body> 
<div id="content">I want to extract this element</div>
</body>
</html>

我试过了:

$.ajax({
url: "anotherpage.html #content",
dataType: "html"
}).done(function(data){
$("#results").html(data);
})

但它会返回完整的页面,而不仅仅是#content 片段。

注意:我知道如何使用 load() 简写,但我想知道如何使用 ajax() 方法。

提前致谢。

4

3 回答 3

2

试试这个

 $('#results').load("anotherpage.html #content");

还可以在这里访问“加载页面片段” jquery load api

于 2013-06-02T17:50:08.000 回答
1

另一个简写是$.get 函数,与您所要求的相关的示例在这里。该文档还提供了该方法的扩展形式,而不是简写形式。

var jqxhr = $.get("example.html", function() {
  alert("success");
})
.done(function() { /* Do work.. */ })
.fail(function() { /* Do error.. */})

// which can be simplified to


$.ajax({
  url: "example.html",
  data: { /*data*/ },
  success: function(oData) { /* Do work.. */ },
  dataType: 'html'
});

此外,通过 id 加载页面(或页面片段)的内容可以通过

$("#TargetContainer").load("example.html #Content");

要以不将 html 放置在页面上的方式执行此操作:

$('<div>').load("example.html #Content");

就使用 ajax() 而言,这似乎是不必要的,除非在微优化中,但我会研究它并重新检查

更新

ajax 方法不加载页面片段。必须发生的是,在您的完整功能中,您必须:

function(oData)
{
    var oContent = $(oData).find('#selector");
}
于 2013-08-07T18:56:31.797 回答
0

使用“成功”函数调用 $.ajax,如下所示:

function(result, textStatus, jqXHR) {
  $('#dialog').html(fragment? $(result).find(fragment).parent().html(): result);
}

'fragment' 是 jquery 选择器,在 .load() 调用中将被添加到 url,用空格分隔。如果 'fragment' 不为空,它会根据返回的内容创建一个 jquery 对象,并使用 'fragment' jquery 选择器找到所需的部分。

于 2019-04-15T14:11:40.980 回答