Создание динамических div - PullRequest
       7

Создание динамических div

0 голосов
/ 03 сентября 2018

Пытаюсь сделать динамический div, но я не знаю как. Написал солидный умный контракт, который принимает массив struct. В смарт-контракте я могу использовать функцию get для отображения данных внутри. Данные в массиве обрабатываются как история, они состоят из количества (создание краудфанд-сайта), даты, используемой валюты и т. Д. Поскольку функция get в смарт-контракте может извлечь только одну часть массива, я подумал о том, чтобы поместить получить функцию в цикле while и извлечь весь массив истории ..

<div id=set>
  <a>value1</a>
  <a>value2</a>
</div>

Я пытаюсь динамически создать еще один div с таким же количеством в div. Если у меня было 10 наборов данных для отображения в этом div, я хотел бы создать только 10 наборов этого div. Можно ли использовать createElement () для этого? Не удалось найти решение, которое работает. Совершенно не знаю, как его создать. Может кто-нибудь, пожалуйста, помогите.

Было бы рационально извлечь данные из массива, используя цикл while и поместить его в div для отображения, или он будет использовать слишком много газа, чтобы это работало?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Количество якорных тегов можно узнать с помощью этой функции getElementsByTagName('a').length с хостинга div. Затем используйте это число для создания новых div. Это решение сделано с использованием Vanilla JS.

function createDynamicDivs(){
	 var newDiv = document.createElement("div");
	 var noOfAnchors = document.getElementById('set').getElementsByTagName('a').length;
		for(var i=0;i<noOfAnchors;i++){
		    var newContent = document.createElement("a");
			newContent.textContent= "Test ";
			newDiv.appendChild(newContent); 
		}
    document.getElementById('new').appendChild(newDiv);
}
<div id=set>
     <a>value1</a>
     <a>value2</a>
</div>
<div id="new"></div>
<button onclick="createDynamicDivs()">Generate</button>
0 голосов
/ 03 сентября 2018

Я не понимаю, почему вы хотите это сделать, но вы можете сделать так:

$('#set a').each(function(){
  $('#set').after( "<div></div>");
});

Он выбирает все элементы <a>...</a> внутри элемента <div id="set">...</div>, и для каждого из них вставляется элемент <div></div>. Он вставляет элемент рядом с #set, но вы можете изменить его на любой другой элемент, который вы можете выбрать.

Я предоставляю код jQuery, поскольку вы пометили вопрос как jQuery.

Надеюсь, это поможет,

...