我正在动态生成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>
答案 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);
});
答案 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 强>