У меня есть объект javascript, который я получил из файла JSONP.Поиск свойств в объекте javascript
Объект содержит несколько «опций» и «результатов», которые используются для настройки html на странице при нажатии пользователем.
Прямо сейчас, я могу проверить, существует ли строка HTML (вставленная через ссылку json) в json-файл. То, что я хочу сделать, это взять эту строку, найти следующий «результат» или «вариант» в json-файле, а затем вернуть значение «option» или «result», чтобы я мог использовать его для изменения html ...
Как это сделать? Я пытаюсь использовать метод .indexOf для поиска текущего индекса, но это действительно не помогает мне найти конкретное свойство, например «вариант».
Это код, который я использую для итерации через файл JSONP и определения текущей строки.
$.ajax({
url: "http://www.myurl.com/jsonp.php",
type: "GET",
dataType: "jsonp",
jsonpCallback: "otmjsonp",
async: false,
success: function (JSON) {
$(".result").on("click", function() {
var currentResult = $(this).text(); //.result is the line of HTML the user has clicked
for (var playerSelection in JSON) {
if (JSON.hasOwnProperty(playerSelection)) {
if (JSON[playerSelection] === currentResult) {
alert("this selection exists in the JSON");
}
}
}
})
}
});
И здесь очень простая версия большого JSONP файла:
otmjsonp({
"situation1" : "Your opponent is trying to tackle you", "playerPrompt1" : "What will you do first?",
"option1" : "avoid him",
"result1" : "he tackles you",
"situation2" : "you were tackled", "playerPrompt2" : "Your opponent begins to slow down",
"option2" : "chase after him",
"result2" : "you caught up",
)}
и т.д. и т.п.
Даже туманные идеи/направления будут оценены, как я полностью застрял.
Должен ли файл JSONP быть в таком формате? Он выглядит неструктурированным, и именно это затрудняет его работу. –
'currentResult' выходит за рамки. Вы объявляете его внутри функции, что означает, что к нему нельзя получить доступ извне. Возможно, вы захотите поставить инструкцию 'var currentResult' на несколько уровней выше. На самом деле, когда я думаю об этом, это также странно, что вы определяете обработчик события click внутри функции успеха. Есть ли причины для этого? – basilikum
@RaulMartins Чтобы решить эту проблему, я попытался как можно больше упростить файл JSONP - у него были вложенные уровни, теперь все на одном уровне. Какую еще структуру вы бы предложили? –