Есть ли способ присвоить HTML-элементам уникальные идентификаторы для использования цикла for для их создания в JavaScript? - PullRequest
0 голосов
/ 04 апреля 2019

Я создаю несколько HTML-кнопок, которые будут действовать как список, и все они будут добавлены в один и тот же объект с идентификатором 'location'.Возможно ли иметь разные идентификаторы для каждой кнопки.

Могу ли я назначить переменную идентификатором, а не строкой?

for(let i=0;(i<countryJSON.length)&&(i<10); i++){
    document.getElementById("locations").innerHTML += `<button type='button' id=countrylist class="list-group-item list-group-item-action">${countryJSON[i].name}</button>`;
}

Ответы [ 3 ]

1 голос
/ 04 апреля 2019

Вы имели в виду что-то вроде этого?

const countryJSON = [
  { name: 'one' }, { name: 'two' }, { name: 'three' },
];

const locations = document.getElementById('locations');

for(let i = 0; i < countryJSON.length && i < 10; i++) {
  const btn = document.createElement('button');
  
  btn.id = `location${i}`;
  btn.className = 'list-group-item list-group-item-action';
  btn.innerHTML = countryJSON[i].name;
  
  locations.appendChild(btn);
}
<div id="locations"></div>

В этом случае каждая кнопка имеет свой уникальный идентификатор, такой как location0, location1 и т. Д.

0 голосов
/ 04 апреля 2019

Конечно, вы уже используете литерал шаблона, поэтому вы можете установить идентификатор так же, как вы настраиваете текст кнопки.

`<button id=${countryJSON[i].id}>${countryJSON[i].name}</button>`
0 голосов
/ 04 апреля 2019

Вы можете добавить значение i в каждой кнопке, и оно будет отличаться, так как оно меняется каждый раз для новой кнопки.

for(let i=0;(i<5)&&(i<10); i++){
    document.getElementById("locations").innerHTML += "<button type='button' id=countrylist-"+i+" class='list-group-item list-group-item-action'>test</button>";
    console.log('Button with id countrylist-'+i+' has been added.');
}
<div id="locations"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...