【发布时间】:2021-05-15 08:18:24
【问题描述】:
我有一个用户搜索 pantone 颜色的输入。如果输入值与 pantone 名称匹配,则 pantones 信息会显示在 dom 中。
我遇到的问题是当用户输入一个不在数据库中的数字时,以前的数据会留在 dom 中并且不会被清除。我想给用户一个消息,他们正在搜索的颜色不在数据库中,并清除以前的数据。
这是我用来触发搜索的代码
var pantone_data = (data) //data is the json from another file im importing
$('#pantoneSearch').focusout(function() {
var pantoneSearchText = parseInt($('#pantoneSearch').val());
// console.log(pantone_data)
$.each(pantone_data, function(i, obj) {
if (pantoneSearchText == obj.name) {
console.log("it sure does")
$('#pantoneTitle').empty();
$('.card-body span').empty();
$('#pantoneTitle').append($('<h3>Pantone ' + obj.name + '</h3>'));
$('#stock1').append($('<p>Stock Name: ' + obj.s1_name + '</p>'));
$('#stock1').append($('<p>Stock Catagory: ' + obj.s1_catagory + '</p>'));
$('#stock1').append($('<p>Pantone Match: ' + obj.s1_pantone_match + '</p>'));
$('#stock1').append($('<p>Delta: ' + obj.s1_delta + '</p>'));
$('#stock2').append($('<p>Stock Name: ' + obj.s2_name + '</p>'));
$('#stock2').append($('<p>Stock Catagory: ' + obj.s2_catagory + '</p>'));
$('#stock2').append($('<p>Pantone Match: ' + obj.s2_pantone_match + '</p>'));
$('#stock2').append($('<p>Delta: ' + obj.s2_delta + '</p>'));
return;
} else {
console.clear()
console.log("nope")
$('.card-body span').empty();
return;
}
});
});
这是数据的 JSON
var data =
[
{
"id":"11",
"name":"11",
"s1_name":"SG12345",
"s1_catagory":"Semigloss",
"s1_pantone_match":"true",
"s1_delta":">2",
"s2_name":"SP54321",
"s2_catagory":"SilerMax",
"s2_pantone_match":"false",
"s2_delta":"<5"
},
{
"id":"22",
"name":"22",
"s1_name":"ZZ00000",
"s1_catagory":"Semigloss",
"s1_pantone_match":"true",
"s1_delta":">21",
"s2_name":"YY1111111",
"s2_catagory":"SilerMax",
"s2_pantone_match":false,
"s2_delta":"<100"
}
]
现在发生的情况是它似乎跳过了 if 语句条件并直接进入 else 语句,清除了“.card-body span”中的所有内容。如果 pantoneSearchText 不匹配任何 pantone 名称,我需要弄清楚如何设置条件,清除内容并添加消息。
希望这很清楚。
【问题讨论】:
-
什么是
pantone_data? -
忘了添加...它的 var pantone_data = (data) 是来自另一个文件的 json
-
我用显示的 json var 数据更新了帖子
-
可以有重复的名字,所以你需要在结果中显示所有的名字吗?
标签: jquery if-statement conditional-statements