简体   繁体   English

仅对表内容javascript html排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM