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

前端之家收集整理的这篇文章主要介绍了如何从jQuery.ajax过滤返回的数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当使用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()和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的孩子,你可以使用这个“黑客”:

$(“< div>”)。html(data).find(selector);

通过使用这个解决方法,您总是通过find()获取元素。

原文链接:https://www.f2er.com/jquery/182201.html

猜你在找的jQuery相关文章