[英]sort the table content javascript html only
I am working a project in which I am making an address book. 我正在做一个正在制作通讯录的项目。 I am displaying the entered data in the form of a table. 我以表格形式显示输入的数据。 reference image of output I want to sort the data that I am entering through HTML form fields. 输出的参考图像,我想对通过HTML表单字段输入的数据进行排序。 Below is my code. 下面是我的代码。 Any idea how to do it. 任何想法如何做到这一点。 Thanks in advance. 提前致谢。
window.onload = function(){
// Buttons
var quickAddBtn = document.getElementById('QuickAdd');
var quickAddFormDiv = document.querySelector('.quickaddForm')
var cancelBtn = document.getElementById('Cancel');
var AddBtn = document.getElementById('Add');
// Form Fields
var lastname = document.getElementById('lastname');
var firstname = document.getElementById('firstname');
var email = document.getElementById('email');
var speaciality = document.getElementById('speaciality');
var practicename = document.getElementById('practicename');
// Divs etc.
var addBookDiv = document.querySelector('.addbook2');
quickAddFormDiv.style.display = "block";
localStorage.clear();
AddBtn.addEventListener("click", addToBook);
addBookDiv.addEventListener("click", removeEntry);
// Storage Array
var addressBook = [];
//localStorage['addbook'] = '[{"lastname":"Sachin B","practicename":"sachin@frameboxx.in","firstname":"93828292","email":"something","speaciality":"Chandigarh"}]';
function jsonStructure(lastname,firstname,email,speaciality,practicename){
this.lastname = lastname;
this.lastname += ", "+firstname;
//this.firstname = firstname;
this.email = email;
this.speaciality = speaciality;
this.practicename = practicename;
}
function addToBook(){
var isNull = lastname.value!='' && firstname.value!='' && email.value!='' && speaciality.value!='' && practicename.value!='';
if(isNull){
// format the input into a valid JSON structure
var obj = new jsonStructure(lastname.value,firstname.value,email.value,speaciality.value,practicename.value);
console.log(obj);
addressBook.push(obj);
localStorage['addbook2'] = JSON.stringify(addressBook);
console.log(localStorage['addbook2']);
//quickAddFormDiv.style.display = "none";
clearForm();
showaddressBook();
}
}
function removeEntry(e){
// Remove an entry from the addressBook
if(e.target.classList.contains('delbutton')){
var remID = e.target.getAttribute('data-id');
addressBook.splice(remID,1);
localStorage['addbook2'] = JSON.stringify(addressBook);
showaddressBook();
}
}
function clearForm(){
var formFields = document.querySelectorAll('.formFields');
for(var i in formFields){
formFields[i].value = '';
}
}
function showaddressBook(){
if(localStorage['addbook2'] === undefined){
localStorage['addbook2'] = '';
} else {
addressBook = JSON.parse(localStorage['addbook2']);
// Loop over the array addressBook and insert into the page
var str = '<table>'+'<div id="heading">'+'<th>'+'<tr>'+'<td id="hName">Name</td>'+'<td id="hEmail">Email</td>'+
'<td id="hPracticeName">Practice Name</td>'+
'<td id="hSpecialty">Specialty</td>'+
'<td id="hDel"></td>'+'</tr>'+'</div>'+'</th>';
addBookDiv.innerHTML = '';
for(var n in addressBook){
str += '<tr>';
str += '<td><div class="lastname"><p>' + addressBook[n].lastname + '</p></div></td>';
str += '<td class="email"><p>' + addressBook[n].email + '</p></td>';
str += '<td class="practicename"><p>' + addressBook[n].practicename + '</p></td>';
str += '<td class="specialty"><p>' + addressBook[n].speaciality + '</p></td>';
str += '<td class="del"><a href="#" class="delbutton" data-id="' + n + '">Delete</a></td>';
str += '</tr>';
//addBookDiv.innerHTML += str;
document.getElementsByClassName("addbook2")[0].innerHTML = str;
console.log(str);
}
}
}
showaddressBook();
}
If you don't have to consider server-side pagination of your data have a look at jquery tablesorter . 如果您不必考虑数据的服务器端分页,请查看jquery tablesorter 。 Demo right here . 演示在这里 。
Simply add jquery as a dependency and initialize the tablesorter plugin on your table like so: 只需添加jquery作为依赖项,然后在表上初始化tablesorter插件,如下所示:
// in the <head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="path/to/your/tablesorter.js"></script>
// right after calling showaddressBook()
$("table").tablesorter();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.