jQuery和XML:按ID选择

时间:2014-11-28 09:27:06

标签: javascript jquery xml

我遇到了XML和jQuery的问题。这是我的代码XML:                                                 

    <items id="2" name="name2">
        <opis></opis>
        <zdjecie></zdjecie>
    </items>

    <items id="3" name="name3">
        <opis></opis>
        <zdjecie></zdjecie>
    </items>

    <items id="4" name="name3">
        <opis></opis>
        <zdjecie></zdjecie>
    </items>
</sterowniki>

这是我的jQuery脚本:

 <script type="text/javascript">  
      $(document).ready(function() {  
        $.ajax({  
          type: "GET",  
          url: "dbtest.xml",  
          dataType: "xml",  
          success: parseXml  
                });  
                function parseXml(xml) 
                {  
                       $(xml).find("sterowniki").each(function() {
                       alert("sterowniki"); 
                        $(xml).find("items").each(function() {
                        $("#nazwa").append('<h3 align="center"class="col-xs-7 col-sm-6     col-md-6 col-lg-8"><b>'+$(this).attr('name')+'</b></h3>');     
                        });
                     });
                  }
              });
          </script> 

我的显示名称有问题。网站需要以这样的方式加载:当您第一次加载链接元素(名称,描述)时,只应加载id = 1的第一个元素。进入另一个元素后,它应该在同一页面上加载另一个元素的描述和名称。我在编写这样一个脚本时遇到问题,根据相应链接的点击,选择适当的元素。

感谢。

1 个答案:

答案 0 :(得分:1)

在XML文档中,id属性仅限于此。没有定义它的XSD,它没有特殊意义。标准标识符属性是xml:id - 保留名称空间中的特殊属性。

您可以更改属性或使用属性选择器。

$(xml).find('items[id="1"]');

要触发加载,请为每个生成的h3绑定一个单击处理程序。以下示例将仅触发警报以使其保持较小:

$(xml).find('items').each(
  function() {
    var $items = $(this);
    var id = $items.attr('id');
    $('<h3></h3>')
      .appendTo('#nazwa')
      .text($items.attr('name'))
      .bind(
        'click',
        function() {
          alert(id);
        }
      );
  }
);