Показать сообщение отдельно
  #1 (permalink)  
Старый 14.03.2022, 14:40
Аспирант
Отправить личное сообщение для Judgin Посмотреть профиль Найти все сообщения от Judgin
 
Регистрация: 31.05.2021
Сообщений: 32

Уникальные Id для кнопок
Здравствуйте, нужно чтобы все динамически создаваемые кнопки на странице имели уникальный Id. На странице 16 блоков и сейчас уникальные Id присваиваются блоку. Однако внутри блока все кнопки имеют одинаковые Id, как сделать чтобы у всех были разные?

Цикл который создает кнопки

for(var k = 0; k < movieList.length; k++){
    random = Math.floor(Math.random() * 1000);
    btn = 'btn' + random;
    link = 'link' + random;
    movieList[k] = movieList[k].replace(/(<\/li>)/gmi,'<div id = "btn"><button onclick="openLink()" id='+ btn + '>Смотреть фильм</button></div></li>');
    movieList[k] = movieList[k].replace(/<a href/g,'<a id='+ link +' href');
}


Код полностью.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		#content{
			width: 100%;
			}
			 .category-list {
			  list-style: none;
			  height: 550px;
			  border: 1px solid red;
			  display: flex;
			  flex-direction: column; 
			  flex-wrap: wrap
			}
			.category-list li {
			  page-break-inside: avoid;
			  break-inside: avoid;
			}

			.btn {
				margin-top: 10px;
				margin-bottom: 10px;
			}

			a {
				font-size: 18px;
			}
	</style>
</head>
<body>
	<div id="content"/></div>
<script>
	 window.addEventListener("DOMContentLoaded", () => {

		Promise.all([
			
		fetch("https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B8%D0%BD%D0%BE%D0%BA%D0%BE%D0%BC%D0%B5%D0%B4%D0%B8%D0%B8_%D0%A1%D0%A1%D0%A1%D0%A0")
		.then(function (response) {
		// The API call was successful!
		return response.text();
		}),
		
		fetch("https://ru.wikipedia.org/w/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B8%D0%BD%D0%BE%D0%BA%D0%BE%D0%BC%D0%B5%D0%B4%D0%B8%D0%B8_%D0%A1%D0%A1%D0%A1%D0%A0&pagefrom=%D0%97%D0%B0%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D0%B9+%D0%B8%D0%B3%D1%80%D0%BE%D0%BA+%28%D1%84%D0%B8%D0%BB%D1%8C%D0%BC%29#mw-pages")
		.then(function (response) {
		// The API call was successful!
		return response.text();
		})
		])
		.then(function (html) {
		// Convert the HTML string into a document object
		let parser = new DOMParser();
		let doc = parser.parseFromString(html, 'text/html');
		let str = "";
		// Get the image file
		let movieList =  Array.from(doc.querySelectorAll('.mw-category-group')).map(x => x.innerHTML);
		let removed = movieList.splice(0,5);
		let removed2 = movieList.splice(9,5);
		let removed3 = movieList.splice(9,1);
		// let titles = Array.from(doc.querySelectorAll('li')).map(x => x.innerHTML('title');
		movieList= movieList.map(function(x){ 
			return x.replace(/<a href="/g,'<a href="https://ru.wikipedia.org/') 
		});
		movieList= movieList.map(function(x){ 
			return x.replace(/<ul/g,'<ul class="category-list clearfix"/') 
		});

		// movieList[8]= movieList[8].replace(/(<\/li>)$/gmi, '</li> <div id = "btns></div>');
		movieList= movieList.map(function(x){ 
			return x.replace(/<li/g,'<li class="category-item"/') 
		});
		for(var k = 0; k < movieList.length; k++){
			random = Math.floor(Math.random() * 1000);
			btn = 'btn' + random;
			link = 'link' + random;
			movieList[k] = movieList[k].replace(/(<\/li>)/gmi,'<div id = "btn"><button onclick="openLink()" id='+ btn + '>Смотреть фильм</button></div></li>');
			movieList[k] = movieList[k].replace(/<a href/g,'<a id='+ link +' href');
		}
		console.log(movieList[8]);
		for(i = 0; i < movieList.length; i++) {
			str += movieList[i] +  '<br>';
		}
		console.log(movieList.length);
		content.innerHTML = str;
		})
		.catch(function (err) {
		// There was an error
		console.warn('Something went wrong.', err);
		});
	});
</script>
</body>
Ответить с цитированием