2017-08-06 22 views
1

我有一個XML文件JS jQuery的.Find。每到後來

<guests> 
<guest firstName="Donald" lastName="Duck" title="MR" age="50"> 
</guests> 
<guests> 
<guest firstName="Daisy" lastName="Duck" title="MRS" ageRange="52"/> 
</guests> 
<guests> 
<guest firstName="Huey," lastName="Duck" title="MR" ageRange="5"/> 
<guest firstName="Dewey," lastName="Duck" title="MR" ageRange="5"/> 
<guest firstName="Louie" lastName="Duck" title="MR" ageRange="5"/> 
</guests> 
<guests> 
<guest firstName="Della" lastName="Duck" title="MRS" ageRange="30"/> 
<guest firstName="Dudly " lastName="Dupont" title="MRS" ageRange="25"/> 
<guest firstName="Dugan" lastName="Dupont" title="MST" ageRange="4"/> 
</guests> 

的這個片段創建用於創建BLOB indiviual串,我騎自行車,雖然它與此代碼

NoOfRooms = $(this).find("room").length; 
$(this).find('guests').each(function() { 
    $(this).find('guest').each(function() { 
     GSTFName = $(this).attr("firstName"), 
     GSTLName = $(this).attr("lastName"), 
     GSTtitle = $(this).attr("title"), 
     GSTAge = $(this).attr("age"); 

     GSTFullName = (GSTtitle + " " + GSTFName + " " + GSTLName); 

     GSTString = [GSTFullName, GSTAge].join(","); 

     console.log("Guests name are ", GSTString); 
    }); 
}); 

的那一刻,我在控制檯收到輸出

Guests name are MR Donald Duck,50 
Guests name are MRS Daisy Duck,52 
Guests name are MR Huey Duck,5 
Guests name are MR Dewey Duck,5 
Guests name are MR Louie Duck,5 

我想要得到的是該住客每個客人節點,即:

Guests name are MR Donald Duck,50 
Guests name are MRS Daisy Duck,52 
Guests name are MR Huey Duck,5,Dewey Duck,5,MR Louie Duck,5 

等,但有自己的字符串,我可以創造一個斑點 後來,當他們引用...像

for (var stay = 0; stay < xNoOfRooms ; stay ++) { 
    DLoadFile = new Blob([CSV, (AllRmString), GSTString(stay)], { type: contentType }); 
} 

,你可以(希望)看,我是他們的方式部分.....可能有人幫助我得到的方式休息?

感謝

回答

0

可以使用map()而不是each在內部循環創建數組...然後加入陣列時,內循環完成

$(this).find('guests').each(function() { 

    var guests = $(this).find('guest').map(function() { 
    var GSTFName = $(this).attr("firstName"), 
     GSTLName = $(this).attr("lastName"), 
     GSTtitle = $(this).attr("title"), 
     GSTAge = $(this).attr("age"), 
     GSTFullName = (GSTtitle + " " + GSTFName + " " + GSTLName); 

    return [GSTFullName, GSTAge].join(",");  
    }).get(); 

    console.log("Guests name are ", guests.join()); 
}); 
+0

嗨charlietfl,謝謝。在'GET'後面添加'guestsdata = guests.join();'後,我可以將數據保存到一個字符串中,供以後參考。 –

0
var result = ""; 
$(this).find('guest').each(function() { 
    GSTFName = $(this).attr("firstName"), 
    GSTLName = $(this).attr("lastName"), 
    GSTtitle = $(this).attr("title"), 
    GSTAge = $(this).attr("age"); 

    GSTFullName = (GSTtitle + " " + GSTFName + " " + GSTLName); 

    GSTString = [GSTFullName, GSTAge].join(","); 
    result+=","+GSTString; 
}); 

console.log("Guests name are ", result); 

只需串接在內部循環字符串,然後顯示它,如果內環結束。