为动态表单设置带有单击事件的JavaScript变量

为动态表单设置带有单击事件的JavaScript变量,javascript,php,jquery,Javascript,Php,Jquery,我有一些PHP输出JavaScript。我需要动态设置id。由于使用了i变量,以下代码在第3行中断。我希望这是一个带引号的简单问题,但我可能错了 $html .='$("#add").click(function (e) {'; $html .= 'var i=0;'; //Append a new row of code to the "#items" div $html .='$("#items").append(\'<div><input na

我有一些
PHP
输出
JavaScript
。我需要动态设置
id
。由于使用了
i
变量,以下代码在第3行中断。我希望这是一个带引号的简单问题,但我可能错了

$html .='$("#add").click(function (e) {';

    $html .= 'var i=0;';

    //Append a new row of code to the "#items" div
    $html .='$("#items").append(\'<div><input name=\"input[]\" type=\"text\" id=\"itin_form_'+i+'\" /><button class=\"delete\">Delete</button></div>\'); i++; });';
$html.='$(“#添加”)。单击(函数(e){';
$html.='var i=0;';
//在“#items”div中追加一行新代码
$html.='$(“#项”).append(\'Delete\');i++});';
有人知道这段代码失败的原因吗?

这行吗

$html .= 'var i=0;';
$html .='$("#add").click(function (e) {';
 //Append a new row of code to the "#items" div
$html .='$("#items").append(\'<div><input name="input[]" type="text" id="itin_form_\'+i+\'" /><button class="delete">Delete</button></div>\'); i++; });';
$html.='var i=0;';
$html.='$(“#添加”)。单击(函数(e){';
//在“#items”div中追加一行新代码
$html.='$(“#项”).append(\'Delete\');i++});';
转义到Javascript时,应返回:

var i=0;
$("#add").click(function (e) {
    $("#items").append('<div><input name="input[]" type="text" id="itin_form_'+i+'" /><button class="delete">Delete</button></div>'); 
    i++; 
});
var i=0;
$(“#添加”)。单击(函数(e){
$(“#项”)。追加('Delete');
i++;
});
这行吗

$html .= 'var i=0;';
$html .='$("#add").click(function (e) {';
 //Append a new row of code to the "#items" div
$html .='$("#items").append(\'<div><input name="input[]" type="text" id="itin_form_\'+i+\'" /><button class="delete">Delete</button></div>\'); i++; });';
$html.='var i=0;';
$html.='$(“#添加”)。单击(函数(e){';
//在“#items”div中追加一行新代码
$html.='$(“#项”).append(\'Delete\');i++});';
转义到Javascript时,应返回:

var i=0;
$("#add").click(function (e) {
    $("#items").append('<div><input name="input[]" type="text" id="itin_form_'+i+'" /><button class="delete">Delete</button></div>'); 
    i++; 
});
var i=0;
$(“#添加”)。单击(函数(e){
$(“#项”)。追加('Delete');
i++;
});

这里的问题是,无论何时单击,
i
的值都会初始化为
0
。这确实是一个简单的愚蠢错误。您的代码提供了以下结果:

$("#add").click(function (e) {
    var i=0;
    $("#items").append('<div><input name="input[]" type="text" id="itin_form_'+i+'" /><button class="delete">Delete</button></div>'); 
    i++; 
});

您不需要在上述代码中转义
:)

这里的问题是,每当您单击时,
i
的值就会初始化为
0
。这确实是一个简单的愚蠢错误。您的代码会给出以下结果:

$("#add").click(function (e) {
    var i=0;
    $("#items").append('<div><input name="input[]" type="text" id="itin_form_'+i+'" /><button class="delete">Delete</button></div>'); 
    i++; 
});

在上述代码中,您不需要转义
<代码>:)

首先,您的代码存在许多问题:

变量
var i=0
在函数中声明,因此它总是被重置,并且永远不会超过1。 解决方案:只需在页面加载时声明一次,例如在
部分的脚本标记中或在jquery document ready调用中声明一次。我在下面展示了一个例子

请使用PHP删除所有这些转义字符: 下面是一个示例
test.php
tested and working,我使用您的javascript代码原样创建了自己(我刚刚删除了所有转义字符以使其更具可读性):



首先,您的代码存在许多问题:

变量
var i=0
在函数中声明,因此它总是被重置,并且永远不会超过1。 解决方案:只需在页面加载时声明一次,例如在
部分的脚本标记中或在jquery document ready调用中声明一次。我在下面展示了一个例子

请使用PHP删除所有这些转义字符: 下面是一个示例
test.php
tested and working,我使用您的javascript代码原样创建了自己(我刚刚删除了所有转义字符以使其更具可读性):



是否有特定的原因需要这样做而不是直接通过JavaScript/jQuery?是的,我必须在函数末尾返回$html,我更喜欢用另一种方法,但看起来我将被迫这样做。@user1532669我首先发现了这个问题。不管怎么说,很高兴问题解决了。你看到我的答案了吗?你需要这样做而不是直接通过JavaScript/jQuery吗?是的,我必须在函数末尾返回$html,我更喜欢用另一种方法,但看起来我将被迫这样做。@user1532669我首先发现了这个问题。不管怎么说,很高兴问题解决了。你看到我的答案了吗?我会进一步帮助你的。不需要转义双引号,因为它们位于用单引号定义的字符串中。是的,我已经理解了这一点,并相应地进行了更新<代码>:D
检查:我会进一步帮助你。不需要转义双引号,因为它们位于用单引号定义的字符串中。是的,我已经理解了这一点,并相应地进行了更新<代码>:D
检查:D@PraveenKumar:对于那些在某一天找到答案并对自己有用的人:)@PraveenKumar:对于那些在某一天找到答案并对自己有用的人:)
<script src="//code.jquery.com/jquery-1.10.2.js"></script>