Настройка текста HTML с помощью цикла - PullRequest
0 голосов
/ 11 марта 2019

В настоящее время я выполняю запрос REST к списку SharePoint и пытаюсь отобразить результаты с помощью сценария $ (). Text ().У меня это работает, но я думаю, что есть более эффективный способ.У меня есть много полей, которые мне нужно установить, но они последовательно числовые и просто думают, что должен быть лучший способ.Пример ниже:

$('#div1Id').text(data.d.results[0].slot1);
$('#div2Id').text(data.d.results[0].slot2);
$('#div3Id').text(data.d.results[0].slot3);

и т. Д. X20 поля ... Я пробовал ниже, но я уверен, что по всем очевидным причинам, которые знают, что вы делаете, это не сработало.«DivId» загружается нормально, но dataId показывает текст «data.d.results [0] .slot1» / 2/3 / etc вместо фактических data.d.results:

for (i=1;i<21;i++){
var divId = "#div"+i+"Id";
var dataId = "data.d.results[0].slot"+i;
$('+divId+').text(dataId);
}

Ответы [ 2 ]

1 голос
/ 11 марта 2019

Вы можете попробовать метод forEach или, как уже упоминалось, избавиться от кавычек в "data.d.results [0] .slot"

var data = [{
  "id": 1,
  "Name": "Some Title 1",
  "number": "Number 1"
}, {
  "id": 2,
  "Name": "Some Title 2",
  "number": "Number 2"
}, {
  "id": 3,
  "Name": "Some Title 3",
  "number": "Number 3"
}];

//data.d.results[0] << you'd use this
data.forEach(elem => {
  document.getElementById("entries").innerHTML += elem.Name +"<br/>";
});
<div id="entries"></div>
1 голос
/ 11 марта 2019

Исходя из того, что делал ваш первый пример, я думаю, вы хотите это:

for (i = 1; i < 21; i++) {
    var divId = "#div" + i + "Id";

    // access the value from the "slot#" property of the object
    var data = data.d.results[0]['slot' + i];

    // get the correct div based on the id and then 
    // set its text to the value
    $(divId).text(data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...