javascript - 手动排序,但不能使用“onclick”功能
问题描述
我有一个名称列表,我想按它们有多少点对其进行排序,默认设置为0
,每次我按下按钮时,它都会为该特定名称添加一个点,但不会将它们排在第一位地方,如果我在列表中手动添加点JS
它工作正常,但当我使用按钮时不行。这是我尝试过的:
let characters = [
{name: document.getElementById("name 1").textContent, points: 0},
{name: document.getElementById("name 2").textContent, points: 0},
{name: document.getElementById("name 3").textContent, points: 0}
];
function choice (button) {
const buttonCharacterObject = characters.find(obj => obj.name === button.textContent);
buttonCharacterObject.points += 1;
console.log(characters)
}
const ranking = characters.sort((a, b) => (a.points < b.points ? 1 : -1));
console.log(ranking);
<button id="name 1" onclick="choice(this)">John</button>
<button id="name 2" onclick="choice(this)">Martin</button>
<button id="name 3" onclick="choice(this)">Sam</button>
解决方案
只需将排名也放入函数中,控制台输出排名字符。
let characters = [
{name: document.getElementById("name 1").textContent, points: 0},
{name: document.getElementById("name 2").textContent, points: 0},
{name: document.getElementById("name 3").textContent, points: 0}
];
function choice (button) {
const buttonCharacterObject = characters.find(obj => obj.name === button.textContent);
buttonCharacterObject.points += 1;
const ranking = characters.sort((a, b) => (a.points < b.points ? 1 : -1));
console.log(ranking);
}
<button id="name 1" onclick="choice(this)">John</button>
<button id="name 2" onclick="choice(this)">Martin</button>
<button id="name 3" onclick="choice(this)">Sam</button>
推荐阅读
- java - Nimbus Look and Feel 是否适用于所有平台(即使 jar 被转换为 exe)?
- javascript - Image .onerror — 区分服务器响应 400 和 200,但 Content-Type 不是图像?
- python - 导入 python 日志记录时遇到问题
- css - div标签内按钮的CSS选择器
- html - 在页面重新加载时停止 python 函数调用
- javascript - 出于数学目的使用 React 将日期/时间转换为秒
- firebase - Firebase 错误:没有要更新的文档(带有 Firebase 应用的 Vue 3)。但是如果等待 1 分钟然后重新加载它是可更新的
- c++ - 如何正确使用 warpPerspective?
- javascript - 在reactjs中使用refs绑定输入类型
- amazon-web-services - 是否可以在 VPC 创建/编辑事件上触发 Lambda 函数?