Javascript 追加新的<;李>;并将其ID号增加1
因此,我尝试添加一个新的Javascript 追加新的<;李>;并将其ID号增加1,javascript,jquery,append,html-lists,Javascript,Jquery,Append,Html Lists,因此,我尝试添加一个新的,每次都将其ID号增加1,这样我就得到了如下结果: <ul id="bxs"> <li id="item-1">1</li> <li id="item-2">2</li> <li id="item-3">3</li> <li id="ite
,每次都将其ID号增加1,这样我就得到了如下结果:
<ul id="bxs">
<li id="item-1">1</li>
<li id="item-2">2</li>
<li id="item-3">3</li>
<li id="item-4">4</li>
<li id="item-5">5</li>
<li id="item-6">6</li>
</ul>
- 1
- 2
- 3
- 4
- 5
- 6
这就是我的jQuery的样子:
var itemCount = 1;
$(function() {
$("#NewItem").click(function(e) { // NewItem is my button
e.preventDefault();
itemCount++;
var element = $("<li id="item-" + itemCount>" + itemCount + "</li>");
$("#bxs").append(element);
});
});
var itemCount=1;
$(函数(){
$(“#NewItem”)。单击(函数(e){//NewItem是我的按钮
e、 预防默认值();
itemCount++;
var元素=$(““+itemCount+” ”);
$(“#bxs”)。追加(元素);
});
});
我做错了什么?我在div中添加itemCount的位置一定有问题。我也尝试过:为什么在HTML代码前面使用$
var element = '<li id="item-' + itemCount+ '">' + itemCount + '</li>';
var element=''+itemCount+' ';
如果你认为这是一个奇怪的字符串,那么试着在你的字符串中使用单引号
var element = $('<li id="item-' + itemCount + '">' + itemCount + '</li>');
var-element=$('“+itemCount+” );
您的字符串没有正确连接。您应该在双引号内使用单引号。此外,如果您已有项目,则无法设置itemCount=1
。我建议动态设置itemCount
。请参见下面的示例(和fiddle)
$(函数(){
$(“#NewItem”)。单击(函数(e){//NewItem是我的按钮
e、 预防默认值();
var itemCount=($(“[id^='item-']”)。长度+1);
var元素=$(“”+itemCount+“ ”);
$(“#bxs”)。追加(元素);
});
});
这是。var元素=$(““+itemCount+” ”);
需要
var element = '<li id="item-' + itemCount + '">' + itemCount + '</li>';
var element=''+itemCount+' ';
试试这个
var element = $("<li id='item-" + itemCount +"'>" + itemCount + "</li>");
var元素=$(“
创建一个新的div元素,并返回一个包含该元素的jQuery对象。是的,这就是fiddle工作的原因,但由于没有对新创建的元素本身进行任何操作(在这种情况下,我会看到使用$()创建它的好处)。我想这只是一种样式选择?:)@托德:不确定将元素
作为字符串还是jQuery对象更快。@火箭,在最后通过jQuery对象进行一次构建要比每次构建一个对象快得多。对于像这样的小用例,尽管他和使用字符串之间的区别很小。有些浏览器(即ie)更喜欢$(“”)而不是$(“”)
。通常我使用。对我来说,省去/。非常感谢。我选择James answer是因为避免使用我不知道可以使用的变量感觉更好。
var element = $("<li id='item-" + itemCount +"'>" + itemCount + "</li>");
var element = $("<li></li>", { id: "item-" + itemCount }).html(itemCount);