Справка по Jsonp для печати каждого элемента из массива - PullRequest
0 голосов
/ 15 декабря 2018

Я ранее опубликовал вопрос относительно API аукциона Yahoo с jsonp

Вот фрагмент массива.

"Result": {
      "UnitsWord": [
        "example1",
        "example2",
        "example3",
        "example4",
        "example5"
      ]
},

Вот мой код

function changeText2(){
    var userInput = document.getElementById('userInput').value;
    $jsonurl = "https://auctions.yahooapis.jp/AuctionWebService/V2/json/search?appid="instert-yahooidhere"-&query=" + userInput;
	
$.ajax({
  type: 'GET',
  url: ($jsonurl),
  contentType: 'application/json',
  dataType:'jsonp',
  responseType:'application/json',
  xhrFields: {
    withCredentials: true
  },
  headers: {
    'Access-Control-Allow-Credentials' : true,
    'Access-Control-Allow-Origin':'*',
    'Access-Control-Allow-Methods':'GET',
    'Access-Control-Allow-Headers':'application/json',
  },
  success: function(data) {
    console.log(data);
	  $.each(data, function (i, test) {
	$('#howmany').append('<p><b>' + test["Result"]["UnitsWord"] + '</b> Was Found</p>');
    });
  },
  error: function(error) {
  
    console.log("Failed");
  }
});
}

Что я пытаюсь сделать, это обернуть

<div id="howmany">
<p><b>example1</b> products found</p>
<p><b>example2</b> products found</p>
<p><b>example3</b> products found</p>
<p><b>example4</b> products found</p>
<p><b>example5</b> products found</p>
</div>

Если я что-то делаю не так, пожалуйста, дайте мне знать.Или, по крайней мере, направьте меня туда, где я могу найти дополнительную информацию по этому вопросу.

1 Ответ

0 голосов
/ 15 декабря 2018

Похоже, что Result - это свойство вашего data, а UnitsWord - это свойство Result, которое содержит массив.Поэтому для итерации по этому массиву вам необходимо:

$.each(data.Result.UnitsWord)

Другими словами, data.Result.UnitsWord - это массив, который вы хотите зациклить с каждым.Это даст вам одну из example_x строк для каждой итерации.

let data= {
   "Result": {
      "UnitsWord": [
        "example1",
        "example2",
        "example3",
        "example4",
        "example5"
      ]
    }
  }


$.each(data.Result.UnitsWord, function (i, test) {
	$('#howmany').append('<p><b>' + test + '</b> Was Found</p>');
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="howmany">
...