欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js實現(xiàn)提交前對列表數(shù)據(jù)的增刪改查

 更新時間:2020年01月16日 15:04:51   作者:無極丶  
這篇文章主要為大家詳細介紹了js實現(xiàn)提交前對列表數(shù)據(jù)的增刪改查,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

js實現(xiàn)列表數(shù)據(jù)的增刪改查,AJAX提交后,js操作數(shù)據(jù)

最近工作中,有一處列表數(shù)據(jù)是頁面初始化加載的,用戶可以進行操作,因為這些數(shù)據(jù)并不存在數(shù)據(jù)庫中,同時為了數(shù)據(jù)的整潔以及高效,所以要在頁面進行增刪改操作(其實查也可以,類似改),之前寫過一個二維數(shù)組保存的,代碼亂而且效率不高,后改用object 感覺還可以,主要是查詢和刪除的時候不需要自己遍歷數(shù)組。

1. html

列表是用div+ul標簽弄的,貼一些用到的片段

1.1 要展示的列表

<div class="tab">
  <div class="tab-t">
  列表標題
  </div>
  <div class="tab-list" id="tab-list">
  //列表數(shù)據(jù)
  </div>
  <div class="page-f">
  <!-- <p class="page-p">共20條</p>
   <ul class="page-ul">
   <li>< </li>
   <li id="li_1"> 1 </li>
   <li id="li_2"> 2 </li>
   <li id="li_3"> 3 </li>
   <li> > </li>
   </ul> --> 
  </div>
  </div>
<div class="yzs-tab">

1.2編輯框

<div class="tab">
  <div class="tab-t">
  信息確認
  <a class="tbtn modify" id="modify">修改</a>
  <a class="tbtn submit" id="submit">確認</a>
  </div>
  <div class="input-f" id="tab-input-f">
  <input type="hidden" id="stuid">
  <div class="tab-input">
   <input type="text" class="info-input disabled" disabled="disabled" placeholder="姓名" />
  </div>
  <div class="tab-input">
   <input type="text" class="info-input disabled" disabled="disabled" placeholder="班級" />
  </div>
  <div class="tab-input">
   <input type="text" class="info-input disabled" disabled="disabled" placeholder="聯(lián)系電話" />
  </div> 
  </div>
</div>

貼一個大致實現(xiàn)效果

2. js主要內(nèi)容

先貼代碼 再簡單解釋下

2.1 初始化

<script type="text/javascript">
 var data=new Object();//操作的主要 定義成全局
 var curPage=1;//翻頁靠他了
 $(function() { 
 $("#search").click(function() {//格式?jīng)]正 其實我很別扭
 var tabList = "";//最后要放入的list數(shù)據(jù) 后面拼接li標簽
  $.ajax({
  type: 'post',//get也可以 但是之前是要修改東西
  url: '<%=request.getContextPath()%>/home/getlist',
  dataType: 'json', 
  data:{name : name},
  success: function (result) {
   var jsonArr = jQuery.parseJSON(result);//返回的是字符串,也可以controller返回對象,用不用parse了
   var arrSize = jsonArr.length;
   var pagetotal = Math.ceil(arrSize/9);//總頁數(shù) 向上取整,一頁展示9條

   data = new Object();//每次搜索要重置下data  
   $.each(jsonArr,function(index,value){給data賦值
   var temp = new Object();
   temp.id = value.id;
   temp.name= value.name;
   temp.class= value.class;
   temp.telphone = value.telphone;
   data[value.id] = temp;
   }) 

   var count = 0;//為了后面的break做個條件 
   for(var i in data){//為什么循環(huán)data而不是 jsonArr,因為jsonArr的前九個和data的前九個有可能是不一樣的,因為Object key為數(shù)字時會自
   if(count==9)break;//動根據(jù)key排序。自己可以驗證下 本人已認證
    tabList += '<div class="tab-li" id="info'+data[i].id+'">'+
    '<div class="li-name" οnclick="showStu(' + data[i].id + ')">'+
     data[i].name
    +'</div>'+
    '<div class="li-close" οnclick="removeStu('+data[i].id +')">'+
     '<i class="close"></i>'+
    '</div>'+
    '</div>';
    count++;
   }

   //少于三頁 不顯示上頁下頁 
   var tips = '<p class="page-p">共'+arrSize+'條</p>';
   if(pagetotal<=3){
   tips +='<ul class="page-ul">';
   for(var i=0; i++; i<pagetotal){
    tips += '<li οnclick="turnPage('+i+')">'+i+'</li>';
   }
   tips += '</ul>';
   }else{
   tips += '<ul class="page-ul">'+
     '<li οnclick="turnPage(1)" class="current"> 1 </li>'+
     '<li οnclick="turnPage(2)"> 2 </li>'+
     '<li οnclick="turnPage(3)"> 3 </li>'+
     '<li οnclick="turnPage(4)"> > </li>'+
    '</ul>';
   }
   $("#tab-list").html(tabList);
   $(".page-f").html(tips);
   $(".page-f").show();

  }
  });
}

初始化后就有了列表,上面用到了翻頁函數(shù) turnPage 先實現(xiàn)分頁

function turnPage(page){
 curPage = page;
 var dataLength = 0;
 var count = 0;
 for(var o in data){
  dataLength++;
 }
 var pagetotal = Math.ceil(dataLength/9);
 if(page>pagetotal){//給刪除用的 ,刪了一頁的話 最大頁碼就減一了
  turnPage(page-1);//譬如你在最后一頁(18頁)刪光了 這時候應該去第17頁
  return;
 }
 var yzsTabList ="";
 for(var o in data){  
  if(count>=(page-1)*9){
  tabList += '<div class="tab-li" id="info'+data[o].id+'">'+
  '<div class="li-name" οnclick="showStu(' + data[o].id + ')">'+
   data[o].name
  +'</div>'+
  '<div class="li-close" οnclick="removeStu('+data[o].id +')">'+
   '<i class="close"></i>'+
  '</div>'+
  '</div>';
  } 
  count++;
  if(count == page*9){
  break;
  }
 }
 //少于三頁 不顯示上頁下頁 
 var tips = '<p class="page-p">共'+dataLength+'條</p>'+
   '<ul class="page-ul">';
 if(pagetotal<=3){
  tips +='<ul class="page-ul">';
  for(var i=0; i++; i<pagetotal){
  if(page == i){
   tips += '<li οnclick="turnPage('+i+')" class="current">'+i+'</li>';
  }else{
   tips += '<li οnclick="turnPage('+i+')">'+i+'</li>';
  }  
  }
 }
 else{
  if(page!=1){//前三頁不能有上一頁的標簽 最后一頁的時候不能有下一頁的標簽
  tips += '<li οnclick="turnPage('+(page-1)+')">< </li>'+
   '<li οnclick="turnPage('+(page-1)+')">'+(page-1)+'</li>'+
   '<li οnclick="turnPage('+page+')" class="current">'+ page +'</li>';
  if(page != pagetotal){
   tips += '<li οnclick="turnPage('+(page+1)+')">'+(page+1)+'</li>'+
    '<li οnclick="turnPage('+(page+1)+')"> > </li>';
  }

  }else{
  for(var i=3; i>0; i--){
   if(page == (4-i)){
   tips += '<li οnclick="turnPage('+(4-i)+')" class="current">'+(4-i)+'</li>';
   }else{
   tips += '<li οnclick="turnPage('+(4-i)+')">'+(4-i)+'</li>';
   }  
  }
  tips += '<li οnclick="turnPage('+(page+1)+')"> > </li>'; 
  }  
 } 
 tips += '</ul>';
 $("#tab-list").html(tabList);
 $(".page-f").html(tips);
 $(".page-f").show();
 }

邏輯也不是特別難,接下來做刪除,修改還要涉及另一個div的操作。貼代碼+注釋

function removeStu(id){
 if($("#stuid").val()==id){//stuid是我在修改框里加的隱藏id 當你查看這個人
  $("#tab-input-f").hide();//的時候,要刪掉這個信息 應該把修改框隱藏
 }
 delete data[id];//簡單的一句話 從data里刪除這個數(shù)據(jù),要是數(shù)組還要循環(huán)匹配
 $("#info"+id).remove();//頁面刪除 其實也可以刪掉 因為下面要重構(gòu)數(shù)據(jù)
 turnPage(curPage);//翻頁 刪除一條 下一條要補上來
 }

關于修改,和后臺springmvc。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • JS判斷form內(nèi)所有表單是否為空的簡單實例

    JS判斷form內(nèi)所有表單是否為空的簡單實例

    下面小編就為大家?guī)硪黄狫S判斷form內(nèi)所有表單是否為空的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • javascript彈出窗口中增加確定取消按鈕

    javascript彈出窗口中增加確定取消按鈕

    本文給大家分享的是在ECShop的項目中使用到的一個小功能,使用JavaScript實現(xiàn)彈出窗口中增加確定取消按鈕,有需要的小伙伴可以參考下
    2016-06-06
  • JavaScript數(shù)據(jù)存儲 Cookie篇

    JavaScript數(shù)據(jù)存儲 Cookie篇

    這篇文章主要為大家介紹了JavaScript數(shù)據(jù)存儲 Cookie篇,感興趣的朋友可以參考一下
    2016-07-07
  • 獲取對象

    獲取對象

    獲取對象...
    2006-08-08
  • 利用Console來Debug的10個高級技巧匯總

    利用Console來Debug的10個高級技巧匯總

    通常,我們在編寫一個新的JavaScript代碼過程中經(jīng)常會發(fā)生錯誤,可能是語法錯誤,可能是邏輯錯誤,如果沒有一個調(diào)試工具幫助我們的話,相信你怕是頭都要炸了。下面這篇文章主要給大家總結(jié)介紹了關于利用Console來Debug的10個高級技巧,需要的朋友可以參考下。
    2018-03-03
  • IE7中javascript操作CheckBox的checked=true不打勾的解決方法

    IE7中javascript操作CheckBox的checked=true不打勾的解決方法

    在IE7下,生成的Checkbox無法正確的打上勾。 原因是 chkbox控件還沒初始化(appendChild),就開始操作它的結(jié)果
    2009-12-12
  • JavaScript數(shù)據(jù)類型的轉(zhuǎn)換詳解

    JavaScript數(shù)據(jù)類型的轉(zhuǎn)換詳解

    JavaScript是一種動態(tài)類型語言,變量沒有類型限制,可以隨時賦予任意值。本文就來和大家聊聊JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換,感興趣的小伙伴可以了解一下
    2022-12-12
  • js原生實現(xiàn)FastClick事件的實例

    js原生實現(xiàn)FastClick事件的實例

    下面小編就為大家?guī)硪黄猨s原生實現(xiàn)FastClick事件的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 簡潔短小的 JavaScript IE 瀏覽器判定代碼

    簡潔短小的 JavaScript IE 瀏覽器判定代碼

    IE瀏覽器不管是什么版本,總是跟Web標準有些不太兼容。對于代碼工作者來說,自然是苦不堪言,為了考慮IE的兼容問題,不管是寫 CSS 還是 JS,往往都要對 IE 特別對待,這就少不了做些判斷。本文不討論如何區(qū)分 IE 的樣式,僅是 JS 判定 IE 瀏覽器。
    2010-03-03
  • html的DOM中document對象images集合用法實例

    html的DOM中document對象images集合用法實例

    這篇文章主要介紹了html的DOM中document對象images集合用法,實例分析了images集合的語法與使用技巧,需要的朋友可以參考下
    2015-01-01

最新評論