微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从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()获取元素。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐