如何动态地将ID分配给动态生成的li元素

时间:2015-10-28 10:28:44

标签: jquery

我正在动态生成li元素。但是当我根据下面的代码为这个li元素分配id时,我得到的是id值而不是文本。我做错了什么?

的.js

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
$.each(months, function (i, v) {
    var li = $('<li id="sp_month_'+ v +'">', { text: v })
    $('#servicePlanMonths').append(li);
});

CSHTML

<div class="months-bar">
            <ul id="servicePlanMonths">
            </ul>
        </div>

3 个答案:

答案 0 :(得分:2)

尝试

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
$.each(months, function (i, v) {
    var li = $('<li id="sp_month_'+ v +'">'+v+'</li>')
    $('#servicePlanMonths').append(li);
});

Fiddle

答案 1 :(得分:0)

试一试:

    var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    $.each(months, function (i, v) {
    var li = $('<li>'+v+'</li>');
    var id = "sp_month_"+ v;
    li.attr("id", id);
    $('#servicePlanMonths').append(li);
    });

在jQuery中你有$(元素).attr(&#34; id&#34;,&#34; somethig&#34;); 试一试Jackson Dunstan's sub-millisecond Timer

答案 2 :(得分:0)

它没有奏效的原因是因为你通过串联设置id。这可以防止使用第二个参数追加其他属性。第一个参数应该是没有其他属性的干净对象。

您需要以与尝试设置文本相同的方式设置ID:

$.each(months, function (i, v) {
   $('<li />', { id:"sp_month_"+ v,text: v}).appendTo('#servicePlanMonths')
});

<强> Working Demo