让我说我想用 $ .ajax
从php页面获取结果,即
$.get("mypage.php", { 'id': "175" }, function(result) {
console.log(result);
});
在这里,结果将是:
<html>
<body>
...
<div id="container">...</div>
</body>
</html>
使用.load()时我可以指定我感兴趣的元素。即。 $('.mydiv').load("something.html #container")
我只能获得容器。我想知道$ .ajax是否可以做类似的事情,所以我可以这样做:
$.get("mypage.php", { 'id': "175" }, function(result) {
console.log(result #container); //only gives me the <div id="container"> element
});
答案 0 :(得分:2)
我相信jQuery会为你创建一个文档片段:
var fragment = $(result);
然后,您可以在片段中查询您感兴趣的元素:
var container = $('#container', fragment);
最后,如果你想看到html:
container.html()
答案 1 :(得分:1)
实际上它很可能而且不是很复杂。当您向HTML页面发出AJAX请求(就像使用jQuery一样)时,您将获得其内容。
然后,您可以将该内容转换为DOM并在其上运行jQuery选择器。基本上发生的是你创建一个空的根元素,对它运行选择器并提取它。这基本上是.load
的作用。
$.get("mypage.php", { 'id': "175" }, function(result) {
console.log($(result).find('#container');
});
其内容如下:获取mypage.php?id = 175,当您完成后 - 从该HTML字符串构建实际页面并从中选择#container。
这正是.load
所做的。来自jQuery源代码:
jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector)
正如您所看到的,它会获得响应文本(您的案例中的结果)将其放入虚拟<div>
并在其中找到selector
(类似于{{ 1}}在我们的例子中)。