在html中增加javascript变量

时间:2013-04-25 00:13:58

标签: javascript jquery html

这应该是一个非常简单的问题。我只是想在这里将变量“inputNumber”输入到附加的html片段中。每次附加此HTML时,inputNumber都应递增。

所以基本上我希望输入名称,id和div id在每次点击“addMore”时从5增加。

var inputNumber = 5;

$("#addMore").click(function() {
$("#input-names").append("<input type='text' id='name' + inputNumber++ name='name' + inputNumber++> <div class='delete-line' id='delete-' + inputNumber++><a href='JavaScript:void(0);'>X</a></div><br>");
});

2 个答案:

答案 0 :(得分:4)

在插入变量之前,您根本没有终止字符串。

var inputNumber = 5;

$("#addMore").click(function() {
  inputNumber++;
  $("#input-names").append("<input type='text' id='name"+ inputNumber +"' name='name"+ inputNumber +"' > <div class='delete-line' id='delete-"+ inputNumber +"'><a href='JavaScript:void(0);'>X</a></div><br>");
});

您可以通过语法看到突出显示代码中的差异。你的IDE也应该有这个功能。

您尝试多次使用增量运算符(++)。这也是一个问题,因为每次调用inputNumber++时值都会递增。这意味着在您的代码中(引号已修复),您仍然将值增加3,因为您调用了inputNumber++ 3次。我在点击回调的开头只调用了一次inputNumber++来改变了这种行为。


您可能还想通过使用此语法创建具有属性的元素来考虑提高代码的可读性 -

var inputElem = $('<input />', {
    type: 'text',
    id: 'name'+inputNumber,
    name: 'name'+inputNumber
});

答案 1 :(得分:1)

在附加之外调用inputNumber++,否则每次在你追加的长字符串中声明它时,你都会递增。递增运算符是自我赋值的,这意味着它们递增1并分配给一次递增的值。代码等效于inputNumber = inputNumber + 1

$("#addMore").click(function() {
    inputNumber++;
    $("#input-names").append("<input type='text' id='name" + inputNumber + "' name='name" + inputNumber + "'> <div class='delete-line' id='delete-" + inputNumber + "'><a href='JavaScript:void(0);'>X</a></div><br>");
});

使用另一种方式,第一次点击的结果HTML将是:

<input type='text' id='name6' name='name7' />
<div class='delete-line' id='delete8'>
    <a href='javascript:void(0);'>X</a>
</div>

另外,请确保正确连接文本字符串。