动态追加文本行

问题描述:

该代码的目标是每次最后一行关注时创建一个新的输入行,直到一定数量的行。 我提供this solution伟大的工程:动态追加文本行

$(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方法是预先定义的)

我想知道为什么我的代码不工作,以及如何chamge它,但不能完全不同的解决方案(当然,除非我的代码有一些根本性的错误。)

+0

是newLine你期待它是什么(如果你调试它)?是在输入焦点上执行的函数吗?焦点和生活在一些浏览器中奇怪地进行交互。 – aepheus 2011-06-01 18:13:58

+0

由于某种原因,当'.after'中有变量或字符串时,函数将不会执行chrome调试器不会提供任何错误 – ilyo 2011-06-01 18:17:32

+0

在newLine中可能有无效的东西?尝试使用一个非常基本的html字符串,看看是否可行。 – aepheus 2011-06-01 18:40:15

lineNum = $('#qc>div').length

后失踪分号

为什么在questionsForm()函数中的代码?
你可以只将它放在了jQuery就绪功能$(function(){ ... });

还那么你的数据的功能是什么样子?

+0

(1)thanx表示分号,但没有变化(2)我在代码中已经有一个'$(function(){})',所以我把'questionsForm'放在那里(3)格式在其他部分相同的代码,我试图删除它,但没有任何更改.. – ilyo 2011-06-02 07:36:08

+0

何时/你在哪里调用questionsForm()? – Andy 2011-06-02 08:27:21

+0

当我使用你的代码,克隆,它的工作原理!它只会在我将其更改为使用HTML行时停止工作。这是代码包括'.format'和'$(function':http://jsfiddle.net/ilyaD/x5fqf/ – ilyo 2011-06-02 08:37:34