javascript 搜索功能
javascript search functionality
我有一个自动完成搜索栏,显示带有图像和文本的下拉菜单,效果很好,但问题是当没有搜索结果可显示时,"No results found" 文本也会显示图像(就像实际结果一样)我知道这是由于我在 jquery 中的 _renderItem() 方法造成的。我不希望它那样显示,但我只想要显示 "No results found"
的纯文本
我一直想弄明白,但没能弄明白。任何帮助深表感谢。谢谢。
这是 javascript 用于显示 "no results found"(只是代码的相关部分)
success: function( data ) {
if (data.length === 0) {
data.push ({
id: 0,
label: "No results found"
});
}
response( $.map( data, function( item ) {
return {
label: item.label,
id: item.id
};
}));
这是 _renderItem()
.data('autocomplete')._renderItem = function(ul, item) {
return $('<li>')
.data('item.autocomplete', item)
.append("<a>"+"<img src ='/account/"+item.id+"/icon/logo' width='40' height='40'/>" + item.label+"</a>")
.appendTo(ul);
};
这是select()事件
select: function( event, ui ) {
window.location="/account/" + ui.item.id;
return false;
}
如何修改这两个函数以仅显示 "No results found" 文本。
我试过使用 if (data.length > 0) {}
但它似乎不起作用。
既然你只关心形象,你可以试试这样:
append("<a>"+"<img src ='/account/"+item.id+"/icon/logo' onerror='$(this).hide()' width='40' height='40'/>" + item.label+"</a>")
添加错误属性,错误时隐藏图像。由于没有找到结果,您将得到一个损坏的图像,您可以使用以下方法轻松隐藏它:
onerror="$(this).hide()"
我有一个自动完成搜索栏,显示带有图像和文本的下拉菜单,效果很好,但问题是当没有搜索结果可显示时,"No results found" 文本也会显示图像(就像实际结果一样)我知道这是由于我在 jquery 中的 _renderItem() 方法造成的。我不希望它那样显示,但我只想要显示 "No results found"
的纯文本我一直想弄明白,但没能弄明白。任何帮助深表感谢。谢谢。
这是 javascript 用于显示 "no results found"(只是代码的相关部分)
success: function( data ) {
if (data.length === 0) {
data.push ({
id: 0,
label: "No results found"
});
}
response( $.map( data, function( item ) {
return {
label: item.label,
id: item.id
};
}));
这是 _renderItem()
.data('autocomplete')._renderItem = function(ul, item) {
return $('<li>')
.data('item.autocomplete', item)
.append("<a>"+"<img src ='/account/"+item.id+"/icon/logo' width='40' height='40'/>" + item.label+"</a>")
.appendTo(ul);
};
这是select()事件
select: function( event, ui ) {
window.location="/account/" + ui.item.id;
return false;
}
如何修改这两个函数以仅显示 "No results found" 文本。
我试过使用 if (data.length > 0) {}
但它似乎不起作用。
既然你只关心形象,你可以试试这样:
append("<a>"+"<img src ='/account/"+item.id+"/icon/logo' onerror='$(this).hide()' width='40' height='40'/>" + item.label+"</a>")
添加错误属性,错误时隐藏图像。由于没有找到结果,您将得到一个损坏的图像,您可以使用以下方法轻松隐藏它:
onerror="$(this).hide()"