Целью кода является создание новой строки ввода каждый раз, когда фокусируется последняя строка, до определенного количества строк.
Мне предложили это решение , которое прекрасно работает:
$(function() {
$("#qc>div:last-of-type>input").live('focus', function() {
$(this).parent().after($(this).parent().clone().attr('id', 'ansInput' + $('#qc>div').length).find('input').val('').end());
});
});
но я также хочу каждый раз менять текст перед строкой, поэтому clone
не обрежет его
Я изменил ее, чтобы написать предварительно готовую строку HTML, но она не работает:
function questionsForm() {
$("#qc>div:last-of-type>input").live('focus', function() {
lineNum = $('#qc>div').length
newLine = ("<div id='ansInput{0}'>Answer {0}: <input type='text' name='ans{0}' /></div><!--ans1-->").format(lineNum);
if ($('#qc>div').length <= 4) {
$(this).parent().after(newLine);
}
});
}
(метод .format
предопределен)
Я хотел бы понять, почему мой код не работает, и как его изменить, но не совсем другие решения (если, конечно, в моем коде нет некоторых фундаментальных ошибок ..)