簡體   English   中英

僅對表內容javascript html排序

[英]sort the table content javascript html only

我正在做一個正在制作通訊錄的項目。 我以表格形式顯示輸入的數據。 輸出的參考圖像,我想對通過HTML表單字段輸入的數據進行排序。 下面是我的代碼。 任何想法如何做到這一點。 提前致謝。

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();


}

如果您不必考慮數據的服務器端分頁,請查看jquery tablesorter 演示在這里

只需添加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