| Цитата(12345c @ 8.7.2010, 01:21) | | Код | function add() { if($("#mydiv input").length < Math.min($("#myinput").val(), 10)){ div.append("<input/><br/>"); add(); } }
|
|
Прошу не бить. Вопрос встречный. А на скорости это не скажется? Ведь length - это по сути опять же пробег по дереву и получение размера количества элементов. Т.е. в арифметической прогрессии нагрузка растет. Предлагаю другой код (суть не меняется - но он будет гораздо меньше нагружать браузер)
| Код | function add() { var str; //строка, в коорую будет собиратьс всё l=$("#mydiv input").length; //количество текущих инпутов n=Math.min($("#myinput").val(), 10); //количество инпутов, котрые должны быть на страничке for(l=l;l<n;l++){ //Прогоняем циклом str+="<input/><br/>"; //Собираем строчку } div.append(div); // Добавляем в конец слоя сформированную строку состоящую из инпутов. }
|
Убираем комментарии и получается:
| Код | function add() { var str; l=$("#mydiv input").length; n=Math.min($("#myinput").val(), 10); for(l=l;l<n;l++){ str+="<input/><br/>"; } div.append(div); }
|
Не претендую на супер краткость - но и обращаться постоянно к add, работая повторно с деревом, не вижу смысла. |