代码之家  ›  专栏  ›  技术社区  ›  Jack Roscoe

使用jQuery解析XML时遇到问题

  •  1
  • Jack Roscoe  · 技术社区  · 16 年前

    目前的问题是,一旦我进入'for'循环,它就不会循环了,我想我可能写错了xml路径数据。它运行一次,我收到“alert(arrayIds.length);”只有一次,如果删除后续的xml路径代码,它只循环正确的次数。

    我的职责是:

        var arrayIds = new Array();
    $(document).ready(function(){
      $.ajax({
        type: "GET",
        url: "question.xml",
        dataType: "xml",
        success: function(xml)
        {
                      $(xml).find("C").each(function(){
                            $("#attr2").append($(this).attr('ID') + "<br />");
                            arrayIds.push($(this).attr('ID'));
                      });
    
                      for (i=0; i<arrayIds.length; i++)
                      {
                        alert(arrayIds.length);
                        $(xml).find("C[ID='arrayIds[i]']").(function(){
                            // pass values
                            alert('test');
                        });
                      }
        }
      });
    });
    

    有什么想法吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   user113716    16 年前

    此行无效。缺少函数名。这会毁了剧本。

    $(xml).find("C[ID='arrayIds[i]']").(function(){
    

    应该是(也许):

    $(xml).find("C[ID='" + arrayIds[i] + "']").each(function(){ // Note the added each
    
        2
  •  1
  •   Matthew Flaschen    16 年前

    应该是:

    $(xml).find("*[ID=" + arrayIds[i] + "]").each(function(){
        // pass values
        alert('test');
    });
    

    在查找文本值为“arrayIds[i]”的id之前。而且,id是唯一的,所以您不需要C,我将其更改为标准jQuery语法。而且,就像帕特里克说的,你们每个人都失踪了。