Лучшие практики для динамического создания списка элементов в jquery

0

Я уверен, что есть много вопросов и статей по этому вопросу, я просто не могу найти то, что я ищу...

У меня есть форма, в которой одно из полей исключает число (от 1 до 30), я хочу создать x элементов, где x - выбранный номер, все элементы должны иметь о той же структуре HTML, отличающихся только их идентификаторами. элементы сложны, и я думаю, что я должен форматировать их с помощью HTML/CSS, так как я чувствую, что js должен придерживаться только бизнес-логики, своего рода стиль MVC.

Полагаю, мой вопрос в два раза:

  1. Является "философским" вопросом: есть ли хорошая идея попытаться сохранить "представление" (формат/макет/дизайн) в HTML/CSS и "контроль" (логика) в js? Я новичок в веб-дизайне, и я не уверен в философии архитектуры веб-разработчиков...

  2. Учитывая, что я хочу сохранить форматирование из своих js, как я могу динамически добавлять/дублировать элементы HTML, сохраняя HTML в том же файле, где он принадлежит. Моя первая мысль заключалась в том, чтобы создать столько элементов, сколько мне может понадобиться, спрятать и показать нужное количество их при необходимости, но это не может быть лучшим способом сделать это... Моя вторая мысль заключалась в использовании jquery.clone(), но это создаст повторяющиеся идентификаторы.

Благодарю.

Теги:

2 ответа

1
Лучший ответ

Я думаю, что вам действительно выгодно использовать структуру компоновки клиентской стороны (например, KnockoutJs, но есть множество других, таких как Ember, Angular).

Таким образом, вы можете сохранить свою модель (viewmodel в случае Knockout) в JavaScript и только беспокоиться об имплантации представления в вашем шаблоном HTML.

Проверьте классные учебники для нокаутов, возможно, то, что вы ищете

http://learn.knockoutjs.com/

0
var inputCount = paraeInt$('input').val()),
elementMarkup = $('<div class="dynamic-    div"/>');

for(var i; i < inputCount; i++){
 $('body').append(elementMarkup);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню