У меня есть некоторый код, подобный этому:Как построить новый элемент HTML в jQuery?
var glyph = isApple ? '<span class="glyphicon glyphicon-apple"></span>' : '<span class="glyphicon glyphicon-banana"></span>';
var newFruit = '<li class="list-group-item">' + glyph + '<span class="badge">' + score + '</span>' + name + '</li>'
$('#fruitList').append(newFruit);
Просто много грубой конкатенации, который трудно читать и следовать. Есть ли способ функционально создать эти элементы, и если да, то как? Кроме того, мне любопытно, как это сделать, потому что, если он намного медленнее, чем я, то я просто не буду беспокоиться.
Я ищу что-то подобное, например:
var newElement = li().class("list-group-item").value(name);
newElement.span().class(isApple ? "glyphicon glyphicon-apple" : "glyphicon glyphicon-user");
newElement.span().class('badge').value(score);
$('#fruitList').append(newElement);
Теперь, очевидно, выше, не является хорошим или, возможно, даже правильно, но, надеюсь, он получает представление в поперечнике. В основном способ цепочки функций для создания новых элементов, который позволяет избежать беспорядка конкатенаций для создания пользовательского HTML для вставки.
Что бы вы могли захотеть, если это распространенное явление, это использовать язык шаблонов на стороне клиента, например, http://handlebarsjs.com/ или аналогичный. Попытка написать HTML с помощью javascript никогда не бывает приятной. – tcooc
$ ('# fruitList'). Append ($ (newFruit)); –