Передавать одно значение, а отображать другое
Здравствуйте. Подскажите, как мне в этом скрипте отображать в таблице только день, а при клике передать дату полностью в формате, например, yyy-mm-dd
function createCalendar(id, year, month) {
var elem = document.getElementById(id);
var mon = month - 1; // месяцы в JS идут от 0 до 11, а не от 1 до 12
var d = new Date(year, mon);
var table = '<table class="svet"><tr><th>пн</th><th>вт</th><th>ср</th><th>чт</th><th>пт</th><th>сб</th><th>вс</th></tr><tr>';
// заполнить первый ряд от понедельника
// и до дня, с которого начинается месяц
// * * * | 1 2 3 4
for (var i=0; i<getDay(d); i++) {
table += '<td></td>';
}
// ячейки календаря с датами
while(d.getMonth() == mon) {
table += '<td>'+d.getDate()+'</td>';
if (getDay(d) % 7 == 6) { // вс, последний день - перевод строки
table += '</tr><tr>';
}
d.setDate(d.getDate()+1);
}
// добить таблицу пустыми ячейками, если нужно
if (getDay(d) != 0) {
for (var i=getDay(d); i<7; i++) {
table += '<td></td>';
}
}
// закрыть таблицу
table += '</tr></table>';
// только одно присваивание innerHTML
elem.innerHTML = table;
}
function getDay(date) { // получить номер дня недели, от 0(пн) до 6(вс)
var day = date.getDay();
if (day == 0) day = 7;
return day - 1;
}
//var today = new Date();
//var yr = today.getFullYear();
//var mr = today.getMonth()
createCalendar("calendar", 2014, 10)
$('table').on('click', 'td', function () {
var index = $(this).index();
$('td').not(this).filter(function() {
return $(this).index() == index;
});
$(this).toggleClass('click');
var day = $(this).html();
var your_url = 'send.php';
var your_uid = 17;
$.ajax({
type: "POST",
url: your_url,
data: "uid=" + your_uid + "&day="+day,
success: function(data) {
if (data) {
$('td').not(this).filter(function() {
return $(this).index() == index;
});
$(this).toggleClass('click');
} else {
}
}
});
alert($(this).html())
});
Источник: Stack Overflow на русском