【发布时间】:2019-02-13 13:27:28
【问题描述】:
这是 Reddit 应用的示例。我想在单击“upvote”或“downvote”按钮时增加或减少一个数字,并且它的值应该存储在本地存储中......谢谢;
HTML 标记:
<div class="submit-box">
<form id="myForm">
<h2>Add a Link</h2>
<h3>Title:</h3>
<input type="text" placeholder="Enter title" id="siteName">
<h3>Link:</h3>
<input type="text" id="siteUrl" placeholder="Enter URL Link">
<button class="btn" >Submit Link</button>
</form>
</div>
<div class="container">
<div class="content-box" id="content">
// Code dynamically generated from javascript...
</div>
</div>
Javascript 代码:
let form = document.getElementById('myForm');
let content = document.querySelector('#content');
function addIt(e) {
e.preventDefault();
let siteName = document.getElementById('siteName').value;
let siteUrl = document.getElementById('siteUrl').value;
content.innerHTML += `
<div class="row">
<div class="points col-md-4">
<p class="num">0</p>
<p class="point">Points</p>
</div>
<div class="matter col-md-6">
<h2>${siteName}</h2>
<p class="lead">${siteUrl}</p>
<button class="upvote">upvote</button>
<button class="downvote">downvote</button>
</div>
</div>
`
votes();
}
function votes() {
let upvotes = Array.from(document.querySelectorAll('.upvote'));
let downvotes = Array.from(document.querySelectorAll('.downvote'));
upvotes.forEach(upvote => upvote.addEventListener('click', up));
downvotes.forEach(downvote => downvote.addEventListener('click', down));
function up() {
//...
}
function down() {
//...
}
}
结果输出:
【问题讨论】:
-
为什么要将它存储在 localStorage 而不是服务器上?
标签: javascript dom ecmascript-6 local-storage