2011-02-08 50 views
0

我搜索上下,但无法找到我所期待的元素。查找包含特定文本和某些家长

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

我使用的是非常基本的通话jQuery.ajax提取数据,并检索分配给他的任务的标题和/或标识。所以第一个目标是在我的jQuery对象$(data)中搜索任何拥有文本“rgoulet”的所有者元素。接下来,我想直接在它上面获得标题和ID。

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

在此先感谢!

回答

1

一旦你找到含有'rgoulet'正确<owner>,使用.closest('task')找到<task>类型的最近的父元素:

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

我试过,但它要搜索整个DOM。我如何将它限制为从我的Ajax调用传递的$(data)?而且由于rgoulet是多任务的拥有者,我如何搜索他所拥有的所有任务? – gdanko 2011-02-08 14:59:31

相关问题