使用Jquery在xml中查找节点

时间:2010-09-19 14:55:10

标签: jquery xml ajax

您好我是Jquery的新手并且我的脚本有问题,我想使用jquery访问我的xml文件中的第二个'heading'标记。 这是我的脚本,但我想做的是为航向的第二个值分配一个可变的。

 $(document).ready(function()
        {

             $.ajax({
               type: "GET",
               url: "task.xml",
               dataType: "xml",
               success: displayXml
            });

        function  displayXml(data){

          $(data).find("tasks").each(function() {

          var heading = $(this).find("heading").text();

          });
        } 

        }); // doc ready 

这是我的xml doc。我正在寻找的是像

name = $(“heading”,2).text();价值是'新工作'。有人可以帮我这个吗?

        <?xml version="1.0" encoding="utf-8"?>
        <tasks>

                <heading>Home </heading>

                <heading>New Job </heading>

                <heading>System </heading>

        </tasks>

2 个答案:

答案 0 :(得分:2)

这是你在寻找什么?

$("heading:eq(1)",data).text();

正如您在文档中看到的http://api.jquery.com/jQuery/ jQuery()(与$()相同)获得第二个参数“context”,在您的情况下,这将是data和jQuery将在此上下文中搜索而不是您的HTML / DOM。

答案 1 :(得分:1)

我相信insomniac的回复并不完全正确,因为:nth-child(2)会返回所有其他选择器,而不仅仅是第二个。您需要的选择器是:eq(1)。这将获得与前一个选择器匹配的第二项:

$(this).find('heading:eq(1)').text();

请注意eq使用从0开始的索引(即第一项为0,第二项为1等)。

有关详细信息,请参阅jQuery API:http://api.jquery.com/eq-selector/