查找包含特定文本和某些父项的元素

时间:2011-02-08 14:01:47

标签: javascript jquery xml ajax

我上下搜索但找不到我要找的东西。

我使用非常基本的jQuery.ajax调用来提取数据:

function retrieveFeed() {
    $.ajax({
        type: "GET",
        url: "http://xxxxx/taskdata.xml",
        beforeSend: function(XMLHttpRequest) {
        return true;
        },
        timeout: 5000,
        dataType: "xml",
        success: function(data) {
            parseXML(data);
        },

        error: function() {
        console.log("Error retrieving XML");
        }
    });
}

XML非常简单:

<tasks>
    <task>
        <title>Refresh Sports page code base</title>
        <id>15276645606996729654</id>
        <owners>
            <owner>
                bfranklin
            </owner>
            <owner>
                bting
            </owner>
        </owners>
    </task>
    <task>
        <title>Security audit for college sports pages</title>
        <id>12019410900674133028</id>
        <owners>
            <owner>
                rgoulet
            </owner>
            <owner>
                bfranklin
            </owner>
        </owners>
    </task>
    <task>
        <title>Fill holes in site monitoring</title>
        <id>828664522750709776</id>
        <owners>
            <owner>
                rgoulet
            </owner>
            <owner>
                dgreene
            </owner>
            <owner>
                lkeene
            </owner>
        </owners>
    </task>
</tasks>

我要做的是拿一个名字,比如rgoulet,并检索分配给他的任务的标题和/或ID。所以第一个目标是在我的jQuery对象$(data)中搜索任何带有文本“rgoulet”的所有者元素。接下来我想直接在它上面获得标题和ID。

我知道这必须是可能的,但我很难过。我见过“父母”,但我不知道如何指定。另外,我已经尝试了几种使用rgoulet为每个拥有者实例搜索$(数据)的方法,但所有这些方法都以最全描述的“解析错误”结束。 :)

提前致谢!

1 个答案:

答案 0 :(得分:1)

找到包含<owner>的正确'rgoulet'后,请使用.closest('task')查找类型为<task>的最近父元素:

var $task = $(data).find("owner:contains('rgoulet')").closest('task');