当前位置: 首页 > 面试题库 >

如何过滤jQuery.ajax()返回的数据?

壤驷高洁
2023-03-14
问题内容

使用该jQuery.ajax()方法时,我正努力筛选返回的数据以准确获得所需的数据。我知道这很容易使用.load(),可能还有其他jQuery
AJAX方法,但是我需要.ajax()专门使用。

例如,我知道这可行;

var title = $(data).filter('title'); // Returns the page title

但是,如果我只想要id =“ foo”的div的内容怎么办?

var foo = $(data).filter('#foo'); // None of these work
var foo = $(data).find('#foo');   //
var foo = $('#foo', data);        //

理想情况下,我想要一个可以传递普通jQuery选择器的方法,该方法将用于选择标题,div或jQuery选择的任何其他元素。这样我可以将任何字符串传递到我自己的ajax函数中-
例如;

myApp.ajax({
    url: 'myPage.html',
    filterTitle: 'title',
    filterContent: '#main-content'
});

任何帮助将不胜感激。


问题答案:

filter()vs. 的使用find()取决于您检索的HTML页面的结构。例如,如果这是检索到的页面:

<!DOCTYPE html>

<html>

<head>
    <title>Foo</title>
</head>

<body>
    <div id="wrap">
        <div id="header">
            <h1>Foo</h1>
        </div>
        <div id="body"> content </div>
    </div>
    <div id="tooltip"> tooltip </div>
</body>

</html>

如果你想选择的顶级元素=元素是直接的孩子<body>-在这个例子中:#wrap#tooltip-那么你必须使用filter()

如果要选择其他元素-在这个例子:#header<h1>#body,… -那么你必须使用find()

我不知道您的元素是否是其子元素<body>,您可以使用此“ hack”:

$("<div>").html(data).find( selector );

通过使用此替代方法,您始终可以通过获得元素find()



 类似资料:
  • 问题内容: 这工作正常: 这将返回400 Bad Request(只是使用.ajax来支持错误处理的上述jQuery的重新格式)。 问题答案: 我认为您只需要再添加2个选项(和):

  • 问题内容: 我想在 angularjs 1.2中 使用unsafe-html 。没有html的过滤器可以工作,而html则不能。我做的事: 我在我的html头中添加了angular-sanitize: 我的角度模块: 我的HTML: 编辑:更新为 问题答案: 已在Angular 1.2中删除。由于您正确地清理了输入内容,因此应该使用。 示例:http://plnkr.co/edit/0bHeXra

  • 问题内容: 我需要通过popView将一些数据从secondView发送回First View。如何通过popViewControllerAnimated发回数据? 谢谢! 问题答案: 您可以使用 创建于 在以下位置创建变量 在扩展协议 提供参考的时 在中定义方法 然后您可以从 例 在ChildViewController中 : 在 下面编写代码… 在MainViewController中 有两种

  • 问题内容: 我认为这很可能非常简单,但是我找不到关于如何在其网站上显示的’filterText’之外添加过滤器的清晰文档。我想做的就是这样简单: 编辑:或者也许我可以以某种方式过滤数据源?我尝试了这个: 但这会引发很多错误。 问题答案: 我发现了一种即时更新的方法。基本上,我保留了所有数据的隐藏集,并且在接收到新数据或更改过滤器后-我将此过滤器应用于完整数据集,并将网格交给过滤后的版本。 这使我可

  • 如何使用java8流过滤列表,如果找到的元素是过滤列表中唯一的元素,则返回该元素,否则(如果有更多的元素满足条件,或者没有满足条件的结果)返回例如 我需要这样的东西: 但我想知道我是否可以在一个单一的流中做到这一点? 有单一的流解决方案吗?

  • 我试图子集一个熊猫DataFrame在python基于两个逻辑语句 即。 但是第3行的语法无效。 有没有一种方法可以在一行中完成?