基本的に私は値が7,14,30でクリックしたときにデータ属性の値を取ろうとしますが、JavaScriptの日付コードに挿入しようとしましたが、値を入れれば正しい日付に警告しますが、データ属性の1つを保持する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変数のIT混乱を使用して、変数iのすべての作品せずに手動など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