Отображение случайного div appendChild?

Я хотел сопоставить конкретный блок if в java

   ...
   ...
   if(isTrue){
       doAction();

   }
...
...
}

. Если я использую regExp

if \(isTrue(.|\n)*}

, он включал замыкающую скобку для блока метода, поэтому я использовал

if \(!isTrue([^}.]|\n)*}

, чтобы исключить заключительную скобку из соответствия шаблону.

0
задан larz 13 July 2018 в 19:20
поделиться

2 ответа

Решение вашей проблемы может состоять в том, чтобы написать три div, которые вы хотите полностью отобразить в js следующим образом:

const divs = [
  "
  <div id="one">
    ...
  </div>
  ",
  "<div id="two">
    ...
  </div>
  ",
  "<div id="three">
    ...
  </div>
  "
]

Использование вашего randomButton

randomButton.addEventListener("click", Randomizer, false);

Вы просто нужно установить innerHTML вашего результата div в соответствующий div массива divs:

function Randomizer() { 
  var resultHTML = divs[Math.floor(Math.random() * array.length)];
  document.getElementById("#placeofresult").innerHTML(resultHTML); 
}

Другое решение - установить стиль ваших divs для отображения none и отобразить только случайно выбранный div после нажмите кнопку

Ваш html:

<div id="placeofresult">
  <div id="one" style="display:none">
    ...
  </div>
  <div id="two" style="display:none">
    ...
  </div>
  <div id="three" style="display:none">
    ...
  </div>
</div>

Ваш рандомизатор:

function Randomizer() {
  var array = [one, two, three];
  // Set all divs to hidden
  array.forEach(function(id){
    document.getElementById(id).style.display = "none";
  })
  var result = array[Math.floor(Math.random() * array.length)];
  document.getElementById(result).style.display = "block";
}
0
ответ дан Chrioyles 17 August 2018 в 12:12
поделиться

appendChild будет работать нормально, если вам нужно вставить div в другой.

Предположим, есть <div id="one">One</div>, который вы хотите добавить внутри <div id="placeofresult"></div>; вам нужно сделать следующее

document.getElementById("placeofresult").appendChild(document.getElementById("one"));

или если вы хотите клонировать div с id = "one" и вставлять его, выполните следующие действия:

const newOne = document.getElementById("one").cloneNode(true);
document.getElementById("placeofresult").appendChild(newOne);

Надеюсь, что это помогает. Вернитесь к любым сомнениям.

0
ответ дан Sunil 17 August 2018 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: