基本上我嘗試採取數據屬性的值單擊時值是7,14,30,我嘗試將它們插入一些JavaScript日期代碼,但它不顯示正確的日期?如果我自己插入值,它會提醒正確的日期,但是當我使用一個包含數據屬性的JavaScript變量時,我會得到遠離真實日期的日期?與日期一起工作時奇怪的Javascript行爲
樣品點here
HTML
<form class="annonceForm" action="index.php?page=opretAuction" method="POST">
<input type="text" name="" placeholder="Produkt">
<div id="auctionExpireWrapper" class="auctionExpireWrapper">
<span data-auctionExpire="7" class="auctionExpire">7 dage</span>
<span data-auctionExpire="14" class="auctionExpire">14 dage</span>
<span data-auctionExpire="30" class="auctionExpire">30 dage</span>
</div>
<input id="auctionStartDateInput" type="hidden">
<input id="auctionEndDateInput" type="hidden">
<textarea placeholder="Beskrivelse"></textarea>
<!-- HIDDEN INPUT FELTER -->
<input type="hidden" name="CSRFToken" value="<?php echo $_SESSION['CSRFToken']; ?>">
<input type="hidden" name="OpretAuctionAuctioneer" value="<?php echo $_SESSION['username']; ?>">
</form>
的Javascript
document.getElementById("auctionExpireWrapper").addEventListener("click", function (e) {
var expireDate = e.target.getAttribute("data-auctionExpire");
alert(expireDate);
var today = new Date();
當我使用EXPIREDATE變量它搞糟的日期,如果我插入等14個手動不變量一切正常精細?
today.setDate(today.getDate() + expireDate);
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
today = yyyy + '-' + mm + '-' + dd;
alert(today);
});
任何人都可以向我解釋爲什麼它的行爲如此嗎?
數據屬性'數據auctionExpire'是不是真的有效。您必須使用'e.target.dataset.auctionexpire'來獲取數據屬性值。請注意'E'小寫。 – KarelG
dataset.auctionExpire有什麼區別?爲什麼是小寫字母? 並非常感謝 – Javaish
它似乎仍然顯示錯誤的日期?出於某種原因,當「7」被按下時,顯示正確的日期,但是當按下14或30時,它顯示錯誤的日期? – Javaish