Я знаю, что это потенциально общий вопрос, но я считаю, что логика и код выглядят правильными, но все же кажется, что они зацикливаются до тех пор, пока браузер не завершится.JavaScript Do/While Loop Infinitely Looping
$("#orderview").click(function(){
do {
$(".row1").clone().appendTo(".cardbox");
var i = $("listrow").length;
}
while (i < 10);
});
Моя функция создает класс класса DIV, пока их не будет 10. Мой HTML начинается с 1 DIV.
<div class="listrow news" id="row-a">
<div class="l-padding floatleft">
<div id="redditThumbnail"></div>
<div class="articleheader news">
<p class="mediatitle alignleft" id="redditTitle">
</p>
<p class="mediumtext floatleft alignleft">
Submitted by
</p>
<div id="redditUsername"></div>
<div class="half floatright">
<p class="mediatext floatright s-color bold h-s-margin">
TEST
</p>
<p class="mediatext floatright p-color bold">
ACTION
</p>
</div>
</div>
</div>
</div>
Логика моей попытки JS был:
- Клонирование первый DIV
- Проверьте, сколько "Listrow" класса DIVs присутствуют
- Если затем рестарт < 10 Listrow DIV в петля и клон другой
Я что-то не хватает? Заранее спасибо за помощь.
Я не вижу DIV с 'row1' класса и ваши забыли' '.' для длины listrow'. Я также не думаю, что это будет работать так, как вы думаете. Почему бы просто не использовать цикл for и не делать? – ElefantPhace
В вашем html-коде отсутствует какой-то материал, который вы используете в своем коде, вы получаете бесконечный цикл из-за этой строки var i = $ ("listrow"). Length ;. вы выбираете элемент (listrow), который не существует, и его возвращение 0 – WinterCore
Привет, я прошу прощения, я скопировал неправильный DIV. У меня есть еще один div с правильным классом «row1». Неплохо подмечено. Итак, вы предлагаете использовать цикл только 10 раз? Честно говоря, я об этом не думал. – dwashburn