javascript - 将创建的节点从 JavaScript 添加和排序到没有 JQuery 的 HTML 表中?
问题描述
首先请注意,我是新来的,我不是程序专家。
我想要什么:我用 JavaScript/HTML/CSS 制作了一个秒表,它正在工作。现在我想保存可以写在文本字段(HTML)中的名称以及我点击保存按钮到 HTML 文件中的表格后的时间。但我想按时间排序。
我的问题:我可以将名称和时间保存到表中。但是我按安全键后不能直接排序。我不是专家,我从未使用过 JQuery。那么,是否有另一种方法可以在不使用任何插件的情况下立即对该表进行排序?
下面你会看到将时间和名称保存到表中的函数,然后将时间设置为 0。
我还添加了小提琴代码:https ://jsfiddle.net/dtq6o52h/
但请注意,小提琴中缺少一个文件(main.js)
不幸的是,我不知道如何将第二个文件添加到 js fiddle 中。您还可以在下面看到 main.js 文件的代码。
谢谢,问候
麦克毛瑟
来自 stopwatch.js 的函数
this.reset = function() {
var playername = document.getElementById("name").value;
var table = document.getElementsByTagName('table')[0];
//
var newRow = table.insertRow(1);
var cel1 = newRow.insertCell(0)
var cel2 = newRow.insertCell(1);
var cel3 = newRow.insertCell(2);
cel1.innerHTML = id;
cel2.innerHTML = playername;
cel3.innerHTML = timeFormatter(time);
id++;
time = 0;
update();
console.log(id);
};
this.isOn = false;
}
main.js
var timer = document.getElementById('timer');
var toggleBtn = document.getElementById('toggle');
var resetBtn = document.getElementById('reset');
var watch = new Stopwatch(timer);
function start() {
toggleBtn.textContent = 'Stop';
watch.start();
}
function stop() {
toggleBtn.textContent = 'Start';
watch.stop();
}
toggleBtn.addEventListener('click', function() {
watch.isOn ? stop() : start();
});
resetBtn.addEventListener('click', function() {
watch.reset();
});
解决方案
那么,是否有另一种方法可以在不使用任何插件的情况下立即对该表进行排序?
是的!点击标题对数据进行排序:
(function(w) {
w.data = [
{ column1: "CCC", column2: "111", column3: "EEE" },
{ column1: "AAA", column2: "BBB", column3: "CCC" }
];
w.sortData = function(columnName) {
w.data = w.data.sort((a, b) => ((a[columnName] < b[columnName]) ? -1 : ((a[columnName] > b[columnName]) ? 1 : 0)));
render();
}
w.render = function() {
var trs = data.map(a => `<tr><td>${a.column1}</td><td>${a.column2}</td><td>${a.column3}</td></tr>`).join('');
document.querySelector("#myTable tbody").innerHTML = trs;
}
})(window);
<table id="myTable">
<thead>
<tr>
<th onclick="sortData('column1');">Header 1</th>
<th onclick="sortData('column2');">Header 2</th>
<th onclick="sortData('column3');">Header 3</th>
</tr>
</thead>
<tbody></tbody>
</table>
推荐阅读
- r - 对大量图像文件进行分类
- python - Python使用正则表达式删除文本中的标点符号
- html - Safari iOS 12.2 和 12.3 中的错误
- r - How to subset rows with strings
- javascript - React Functional Component + TypeScript 的函数重载怎么写?
- python - sklearn 分类的 class_weight 字典格式
- angular - Angular 应用无法在 Azure 上找到资产文件
- azure - 运行 Azure 函数应用时的配置错误
- java - 列表
按本地化顺序 - python - 执行 zip 时收到太多值无法解压的错误