我有一个使用 jQuery 获得的 JSON 文件。
我想知道如何搜索项目并只获取与 HTML 输入相关的项目。
这是我尝试过的:
function Search(form) {
$(".products").empty();
$.getJSON('products.json', function(data) {
$(data.Products).each(function(index, item) {
if(form == item.Name) {
var input = document.getElementById('searchForm');
$('<div/>', {'class':'productname'}).text(item.Name).append(
$('<div/>', {'class':'productdetails', text:'Album: '+item.Album}),
$('<div/>', {'class':'productdetails'}).append($('<img>').attr({src:item.Source,title:item.Name,alt:item.Name,class:'productimage'})),
$('<div/>', {'class':'productdetails', text:'Genre: '+item.Genre}),
$('<div/>', {'class':'productdetails', text:'Price: '+item.Price}),
$('<div/>', {'class':'productdetails', text:'Quantity: '+item.Quantity}),
$('<div/>', {'class':'productdetails', text:'Tracks: '+item.Tracks}),
$('<div/>').append(
$('<button />', {'class':'productbutton'})
.text('Add To Cart.')
.click(function(){
$.fn.SaveToCart(i,item.Name, item.Album, item.Price);
})
)
).appendTo(".products");
} else if (form == item.Album) {
var input = document.getElementById('searchForm');
$('<div/>', {'class':'productname'}).text(item.Name).append(
$('<div/>', {'class':'productdetails', text:'Album: '+item.Album}),
$('<div/>', {'class':'productdetails'}).append($('<img>').attr({src:item.Source,title:item.Name,alt:item.Name,class:'productimage'})),
$('<div/>', {'class':'productdetails', text:'Genre: '+item.Genre}),
$('<div/>', {'class':'productdetails', text:'Price: '+item.Price}),
$('<div/>', {'class':'productdetails', text:'Quantity: '+item.Quantity}),
$('<div/>', {'class':'productdetails', text:'Tracks: '+item.Tracks}),
$('<div/>').append(
$('<button />', {'class':'productbutton'})
.text('Add To Cart.')
.click(function(){
$.fn.SaveToCart(i,item.Name, item.Album, item.Price);
})
)
).appendTo(".products");
}
});
});
};
$(document).ready(function() {
$('#searchForm').submit(function(e) {
e.preventDefault();
Search(this);
});
});
HTML:
<form name="searchForm" id="searchForm" >
<input name="productname" id="productname" type="text">
<input type="submit" value="Search">
</form>
尝试此代码只会刷新页面。
关于如何修复它的任何想法?