Я хотел сопоставить конкретный блок if в java
...
...
if(isTrue){
doAction();
}
...
...
}
. Если я использую regExp
if \(isTrue(.|\n)*}
, он включал замыкающую скобку для блока метода, поэтому я использовал
if \(!isTrue([^}.]|\n)*}
, чтобы исключить заключительную скобку из соответствия шаблону.
Решение вашей проблемы может состоять в том, чтобы написать три 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";
}
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);
Надеюсь, что это помогает. Вернитесь к любым сомнениям.