2011-11-26 89 views
1

我正在製作一個帶有JSON的音樂列表進行搜索,並在用戶輸入一些文本後立即顯示。那就是:在json中刪除額外的<br>標籤

var music = [ 
{"name": "Abba"}, 
{"name": "Justin Bieber"}, 
{"name": "Taylor Swift"}, 
{"name": "David Guetta"}, 
{"name": "Usher"}, 
{"name": "LMFAO"}, 
{"name": "Enrique Iglesias"}, 
{"name": "Pitbull"}, 
{"name": "Eminem"}, 
{"name": "Nickelback"}, 
{"name": "Rihanna"}, 
{"name": "Queen"}, 
{"name": "Linkin Park"}, 
{"name": "Lady Gaga"}, 
{"name": "Gym Class Heroes"}, 
{"name": "Maroon 5"}, 
{"name": "heyhihello"}, 
{"name": "Paramore"}, 
{"name": "Owl City"}, 
{"name": "Black Eyed Peas"}, 
{"name": "Coldplay"}, 
{"name": "White Stripes"}, 
{"name": "Selena Gomez"}, 
{"name": "Selena Gomez and The Scene"}, 
{"name": "Creed"}, 
{"name": "Hinder"} 

]; 
$(document).ready(function(){ 
sendm = function(txt){ 
var st = txt.toLowerCase(); 
if(st.length>0){ 
var res = new Array(); 
$.each(music, function(i, item) { 
    if(item.name.substring(0, st.length).toLowerCase()===st){ 
     res[i] = item.name; 
    } 
}); 
document.getElementById("main-p").innerHTML = res.join("<br>"); 
} 
}; 
}); 

現在,如果用戶輸入「亞瑟小子」,在結果中,它會留下,因爲
標籤的幾行。我如何刪除它們?

回答

1

變化:

res[i] = item.name; 

要:

res.push(item.name); 

那麼你的數組的長度會被發現的,而不是找到了最後一場比賽的指數匹配的數目。取而代之的

$.each(music, function(i, item) { 
    if(item.name.substring(0, st.length).toLowerCase()===st){ 
     res[i] = item.name; 
    } 
}); 

+0

日Thnx的人!我不知道爲什麼這不會出現在我的腦海裏:P – user1025469

+0

沒問題! :) – Paulpro

0

$.each(music, function(i, item) { 
    if(item.name.substring(0, st.length).toLowerCase()===st){ 
     res.push(item.name); 
    } 
});