2016-03-31 4 views
0

В настоящее время я делаю следующее:добавляющие элементы формы в таблицу

var row = "<tr>"; 
$("#addServiceForm input, #addServiceForm select").each(function(index){ 
     row += "<td><input type='text' id='someId' name='someName' value='someValue'></td>"; 
    }); 
    var row "</tr>"; 

$('#someTable').append(row); 

моей псевдо-проблема в том, что строка строка получает долго. Я пытался сделать это с большей удобочитаемостью. Предыдущий вопрос Here помог с частью элемента при добавлении формы, как насчет добавления строки и ввода в таблицу?

$("#addServiceForm input, #addServiceForm select").each(function(index){ 
    var element = $('<input>',{ 
    id:idName, 
    name:idName, 
    val:thisVal 
    }).addClass('verify'); 
row += "<td class='verify'>"+element+"</td>"; 
}); 
$('#someTable').append(row); 

не работает. Я в конечном итоге с:

<td>[OBJECT]</td> 

на основе вашего ответа, что это лучший способ сократить:

var row = "<td><input type='text' id='someIdthatisLong' name='someNamethatisLong' value='someValuethatislong' class='verify' readonly='readonly'></td>"; 
+0

Я бы остался с вашим примером исходного кода. Если одна строка слишком длинная, просто сломайте ее и добавьте в строку. Второй пример не работает, поскольку 'element' является объектом jQuery, поэтому его нельзя напрямую присоединить к строке. Вы можете сделать второй пример работы, поставив вызов 'append()' в каждом цикле, но это (относительно) медленная операция, поэтому почему ваш первый пример предпочтительнее, поскольку он использует только одно приложение. –

+0

спасибо. см. править. – bart2puck

ответ

0

Если вы собираетесь работать с объектами, вы должны использовать их последовательно, а не смешайте их со строками.

var row = $("<tr>"); 
$("#addServiceForm input, #addServiceForm select").each(function(index){ 
    var element = $('<input>',{ 
    id:idName, 
    name:idName, 
    val:thisVal, 
    'class': 'verify' 
    }); 
    row.append($("<td>").append(element)); 
}); 
$('#someTable').append(row); 

Однако, это не обязательно самый эффективный способ сделать это. HTML-парсер браузера чрезвычайно эффективен, поэтому синтаксический анализ большой HTML-строки может быть лучше, чем создание всех отдельных объектов в Javascript и их объединение.

Смежные вопросы