基本上我尝试采取数据属性的值单击时值是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