2011-11-26 90 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); 
    } 
});