У меня есть файл в формате JSON, JS/links.json:Использование если/другое заявление внутри каждой функции
{ "allLinks": [
{
"Link": "http://bbc.com",
"Poster": "John"
},
{
"Link": "http://espn.com",
"Poster": "Jane"
}
...etc.
и следующий HTML:
<input placeholder="http://" id="urlField" type="text">
<button type="button" id="search" name="button">Search</button>
<div id="result"></div>
Поведение Я хотел бы это :
- Вы вводите ссылку на вход
- Когда кнопка нажата, получить links.json а, rray и цикл через него.
- Если существует связь, выход в
#result
: «Это существует, и была опубликована [постер]» - Если он не существует, выход в `#RESULT«Эта ссылка не существует.»
Это, как я пытаюсь сделать это сейчас:
$(function(){
$.ajax({
type : 'GET',
url : 'js/links.json',
async : false,
beforeSend : function(){/*loading*/},
dataType : 'json',
success : function(jsonResult){
$("#search").click(function() {
var searchValue = document.getElementById('urlField').value;
// Go through the whole list and find the Link name
var linkExists = false;
$.each(jsonResult.allLinks, function(i, obj) {
if (obj.Link === searchValue) {
linkExists = true;
alert("It exists");
return false;
}
else {
linkExists = false;
alert("It doesn't exist");
return false;
}
});
});
}
});
});
Там определенно что-то здесь не так, потому что, если я не использовать else
, это, кажется, работает. Когда я добавляю его, он не всегда: «Он не существует».
Заранее благодарим за помощь.
проблема, если первый элемент! == serachValue, вы будете останавливать каждую петлю (возвращая ложь) и linkExists будет ложным ... не имея блок еще действительно является действительным для вашей логики - или, по крайней мере, не возвращает false и не устанавливает linkExists = false (потому что это будет означать, что ваша логика будет успешной, только если элемент LAST соответствует –