2013-04-25 70 views
0

XML響應:我的循環怎麼了?

<NewDataSet xmlns=""> 
<Table diffgr:id="Table1" msdata:rowOrder="0"> 
    <Code>106377</Code> 
    <Name>Blackened red snapper</Name> 
    <Category>123</Category> 
    <Yield>4</Yield> 
    <YieldUnit/> 
</Table> 
<Table diffgr:id="Table2" msdata:rowOrder="1"> 
    <Code>303570</Code> 
    <Name>Celery soup</Name> 
    <Category>123</Category> 
    <Yield>1</Yield> 
    <YieldUnit/> 
</Table> 
<Table diffgr:id="Table3" msdata:rowOrder="2"> 
    <Code>303675</Code> 
    <Name>Challah French Toast</Name> 
    <Category>123</Category> 
    <Yield>6</Yield> 
    <YieldUnit/> 
</Table> 
<Table diffgr:id="Table4" msdata:rowOrder="3"> 
    <Code>303681</Code> 
    <Name>Challah french toast</Name> 
    <Category>123</Category> 
    <Yield>4</Yield> 
    <YieldUnit/> 
</NewDataSet> 

HTML代碼

<div data-role="output"> 
    <ul id="RecipeList" data-role="listview" data-split-icon="star" data-split-theme="e" data-inset="true"> 
    </ul> 
</div> 

JS代碼

var CodeObj = new Array(); 
var NameObj = new Array(); 
var Codeindex = 0; 
var Nameindex = 0; 

$(req.responseText).find('Name').each(function() { 
    NameObj[Nameindex] = $(this).text(); 
    Nameindex += 0; 

    for (var i = 0; i < NameObj.length; i++) { 
     $(this).append(NameObj[i] + "<br/>"); 

     $(req.responseText).find('Code').each(function() { 
      CodeObj[Codeindex] = $(this).text(); 
      Codeindex += 0; 
      for (var a = 0; a < CodeObj.length; a++) { 
       $(this).append(CodeObj[a] + "<br/>"); 
      } 
     }); 

     var $content = $('<li><a href="#"><img src="../../img/album-bb.jpg"><h3>Name: ' + NameObj[i] + '</h3><p>Code: ' + CodeObj[a] + '</p></a><a href="#purchase" data-rel="popup" data-position-to="window" data-transition="pop">Add to favorites</a></li>'); 
     $('#RecipeList').append($content).listview('refresh'); 
    } 
}); 

列表視圖輸出

Name : Blackened red snapper 
Code : 106377 
Name : Celery soup 
Code : 106377 
Name : Challah french toast 
Code : 106377 
Name : Challah french toastr 
Code : 106377 

問題:總是相同的代碼。任何人都可以知道我的循環有什麼問題嗎?謝謝。我嘗試了很多方法。但仍然可以得到正確的輸出名稱

+0

你能'的console.log()'這些:'$(req.responseText).find( '名稱')'和'$(req.responseText).find('Name')。長度' – 2013-04-25 02:20:56

+0

我得到所有的名字..當我看到日誌,但由於代碼是問題。我將其更改爲代碼。並獲得所有的代碼。 – 2013-04-25 03:02:00

+0

您的xml缺少'diffgr'和'msdata'的名稱空間定義 – 2013-04-25 04:00:06

回答

0

似乎

Nameindex + = 0; Codeindex + = 0;

是錯的。不應該是Nameindex + = 1?

+0

等等。生病try..please等待謝謝你:) – 2013-04-25 02:26:21

+0

對不起傢伙。代碼現在是美國代碼,但現在名稱不同。 withour changng my codes .. – 2013-04-25 02:47:55

0

Nameindex += 0Codeindex += 0是無操作,所以它們可能與它有關。

相反,試試這個:

$(req.responseText).find("Table").each(function() { 
    var item = $(this), 
     name = item.find("Name").text(), 
     code = item.find("Code").text(); 
    $("#RecipeList").append('<li><a href="#"><img src="...." />' 
     +'<h3>'+name+'</h3>Code: '+code+'</a>.....'); 
}); 
+0

等一下。虐待try..please等待謝謝:) – 2013-04-25 02:25:46

+0

輸出每個列表是 – 2013-04-25 02:30:10

+0

名稱:[object Object]代碼:[object Object] – 2013-04-25 02:30:34

1

問題是與增量。替換:

Nameindex +=0; 
Codeindex +=0; 

隨着

Nameindex++; 
Codeindex++; 

Nameindex +=1; 
Codeindex +=1; 
+1

等一下。生病try..please等待謝謝:) – 2013-04-25 02:24:57

+0

什麼都沒有發生先生 – 2013-04-25 02:38:54

+0

對不起傢伙。代碼現在是美國代碼,但現在名稱不同。隨着我的代碼長昌 – 2013-04-25 02:46:37