В следующих данных JSON элемент имеет "клейковину" в цепочке allergyfree, а элемент B - нет. Я могу добавить элемент <h4>Yes</h4>
к элементу A, но я также хочу добавить элемент <h4>No</h4>
в элемент B, поскольку он не содержит "клейковины" в строке. То же самое относится и к другим значениям без аллергий.
Есть ли способ сравнить строки allergyfree между элементом A и элементом B в цикле, так что если элемент имеет значение, например, клейковину, затем распечатайте <h4>Yes</h4>
, если отсутствует, напечатайте <h4>No</h4>
?
[{"title":"A Item","allergyfree":"sugar,salt,yeast,wheat,gluten"},{"title":"B Item","allergyfree":"sugar,salt,starch,yeast,wheat,preservatives"}]
Код:
$.ajax({
url: source.json,
success: function (data) {
var item_html;
$(data).each(function (index, item) {
var allergyfree = item.allergyfree;
if(allergyfree.length !== 0) {
allergyfree = allergyfree.split(",");
$.each(allergyfree,function(i,allergy){
if (?????????????????)
{
$('.'+ allergy).html('<h4>Yes</h4>')
}
else
{
$('.'+ allergy).html('<h4>No</h4>')
}
});
}
});
},
error: function () {}
});
HTML
<table>
<tr><th colspan="3">A Item</th></tr>
<tr><td class="gluten"></td>
<td class="sugar"></td>
<td class="yeast"></td></tr>
</table>
<table>
<tr><th colspan="3">B Item</th></tr>
<tr><td class="gluten"></td>
<td class="sugar"></td>
<td class="yeast"></td></tr>
</table>
Вы можете использовать функцию $.inArray, которая возвращает позицию элемента в массиве и -1, если элемент отсутствует:
if ($.inArray(alergy,allergyfree)!=-1)