我輸出用PHP日曆和每一個代表一個日期的TD elemets有以下代碼:
onclick="return getDate(2016 + /10/ + 5);"
這是調用一個函數它做兩件事情在頁面上:
- 它評估所傳遞的日期,看它是否是大或小,則當前日期(年月日)使用moment.js
- 它增加了一個類的
.day-selected
如果日期超過當前日期和0級否則爲。
下面是函數:
function getDate(date) {
var dateToday = moment();
var selectedDate = moment(date);
if (selectedDate.isBefore(dateToday, 'day')) {
$(this).addClass('day-expired');
return true;
} else {
$(this).addClass('day-selected');
return false;
}
}
這是行不通的。我想讓$(this)是被點擊的特定td元素,當它被點擊時有一個新類,這取決於傳遞的日期。這裏是我到目前爲止的一個片段:
function getDate(date) {
var dateToday = moment();
var selectedDate = moment(date);
if (selectedDate.isBefore(dateToday, 'day')) {
$(this).addClass('day-expired');
return true;
} else {
$(this).addClass('day-selected');
return false;
}
}
.day-selected {
background:#7cd97c;
color:#fff;
}
.day-expired {
background:#ed5252;
}
.day {
background:#0000ff;
padding:30px;
color:#fff;
}
<script src="http://momentjs.com/downloads/moment.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<div class="day" href="" onclick="return getDate(2016 + /10/ + 2);">
2
</div>
</td>
<td>
<div class="day" href="" onclick="return getDate(2016 + /10/ + 3);">
3
</div>
</td><td id="tt-calendar-today">
<div class="day" href="" onclick="return getDate(2016 + /10/ + 4);">
4
</div>
</td><td>
<div class="day" href="" onclick="return getDate(2016 + /10/ + 5);">
5
</div>
</td><td>
<div class="day" href="" onclick="return getDate(2016 + /10/ + 6);">
6
</div>
</td><td>
<div class="day" href="" onclick="return getDate(2016 + /10/ + 7);">
7
</div>
</td><td>
<div class="day" href="" onclick="return getDate(2016 + /10/ + 8);">
8
</div>
</td>
</tr>
</table>
什麼你想要做的是通過在此背景下,以你的GETDATE功能,然後你可以使用$()將這個元素包裝到jquery中,然後做一個.addClass()。看到這個答案的確切實現:http://stackoverflow.com/a/16404397/4987197 – mhodges
好吧,所以我必須明確地通過'這',我想我仍然可以傳遞我的日期字符串作爲第二個參數...現在就試試,謝謝你的評論。 –
請注意'2016 +/10/+ 4'實際上是將一個數字添加到正則表達式的.toString()(它恰好是'/ 10 /')。你應該引用'/ 10 /'。哦,當你在這裏時,請不要使用onclick =的習慣。它永遠不是正確的工具。 –