我制作了一个列出月份的功能。
function genDate() {
var d = new Date();
var monthNames = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN",
"JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ];
var day = d.getUTCDate().toString();
var mon = d.getUTCMonth();
var year = d.getUTCFullYear();
$("#day").prepend('<span id="day_num">' + day + '</span>');
var cc = mon;
for (var i = 0; i < 12; i++) {
$("#date_cont").append('<div class="month"><a href=""
onclick="return false;" >' + monthNames[cc] + '</a></div>');
cc++;
if ( cc > 11 ) {
cc = 0;
}
}
}
我想要做的是让生成的.months元素保存不同的变量,如月份索引(0-11),可以被其他函数使用。我猜这些元素将充当对象(.month类的每个元素都拥有自己唯一的值)。我是javascript的新手,所以我不知道如何实现它。
答案 0 :(得分:1)
当然,只需将其添加到数据属性中,稍后再获取它?
for (var i = 0; i < 12; i++) {
var a = $('<a />', {href: '#', text: monthNames[i] }),
div = $('<div />', {'class': 'month', 'data-month': i });
// ^^^^^ add a data attribute !
$("#date_cont").append( div.append(a) );
}
以后您可以执行以下操作:
$('.month').on('click', function(e) {
e.preventDefault();
var idx = $(this).data('month'),
month = monthNames[idx];
alert( month );
});
答案 1 :(得分:0)
因为你正在使用jQuery ......如果你有一个元素......
var elem = $('<div></div>');
elem.data('day', someValue); //sets 'day' to someValue's value
elem.click(function(e){
var d = $(this).data('day');
});
注意:您可以在dom元素上指定所需的任何属性(尽量不要冲突)。
var elem = document.getElementById("mine");
elem.somePropertyName = someValue;
此外,data- *属性被认为是将其推入标记的适当方式。
$('#elem').attr('data-day', someValue);
or
<div id="elem" data-day="someValue">...</div>