Мне нужно сгенерировать HTML для флажка. Я произвожу флажок, используя следующую функцию, которая использует JS конкатенации для генерации большого блока HTML:Как сгенерировать html с помощью создания/добавления элементов jQuery?
function getColvisCheckboxHTML(){
// Generates the html for the checkboxes in the column visibility modal
var checkboxes = '';
var tableheaders = table.columns().header();
for(var i = 1;i < tableheaders.length;i++){
var colindex = tableheaders[i-1].getAttribute('data-column-index');
var colname = tableheaders[i-1].getAttribute('aria-label').split(':')[0];
// Don't include ID column, this column should always be visible
if(colname != 'ID'){
checkboxes += '<label class="col-md-2 checkbox-inline"><input type="checkbox" value="' +
colindex + '">' + colname + '</label>';
}
// Display flags in rows of 5
if(i%6==0){
checkboxes += '<br />';
}
};
return checkboxes;
};
Функция затем вызывается с помощью этого кода в пределах Ajax вызова:
$('#colvis_chkboxes').html(getColvisCheckboxHTML());
Я сообщил, что способ, с помощью которого я генерирую HTML, является неправильным методом, и что я должен использовать создание/добавление элемента jQuery вместо этого для удобочитаемости. Мой вопрос в том, как выглядит мой код с помощью этого метода? Я начал пробовать этот другой метод, но это все, что я мог придумать:
$('<label>', {
"class": "col-md-2 checkbox-inline"
}).append(
$('<input/>', {
"type": "checkbox"
Любые советы было бы удивительным. Благодаря!
Ваш оригинальный способ, вероятно, более производительным, но с помощью JQuery сделать это может быть более удобным для чтения. Мне не очень нравится, как вы это делаете. –
Лично я бы, наверное, сделал это не так. Я бы подумал об использовании каких-то шаблонов, таких как jsrender, которые помогут вам разделить разметку с вашей бизнес-логикой. – dman2306