成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 動(dòng)態(tài)創(chuàng)建對(duì)象,動(dòng)態(tài)加數(shù)據(jù)

瀏覽:209日期:2023-03-27 16:50:33

問(wèn)題描述

javascript - 動(dòng)態(tài)創(chuàng)建對(duì)象,動(dòng)態(tài)加數(shù)據(jù)

如圖:1.左邊兩側(cè)的表格都是點(diǎn)擊 上邊“新增”按鈕動(dòng)態(tài)添加出來(lái)的。點(diǎn)擊左側(cè)表格某一行,可以在右側(cè)創(chuàng)建表格(任意多少行都行),左右是一對(duì)多關(guān)系。2.想在左側(cè)新增行的時(shí)候,創(chuàng)建一個(gè)獨(dú)立對(duì)象(意思就是每個(gè)行對(duì)應(yīng)的對(duì)象都不一樣), 然后右側(cè)點(diǎn)擊新增后,新建出來(lái)的行,是帶幾個(gè)下拉菜單的,用戶選完之后,就會(huì)點(diǎn)擊開(kāi)始填報(bào),在點(diǎn)擊開(kāi)始填報(bào)按鈕時(shí),需要把右邊的數(shù)據(jù)和左邊的數(shù)據(jù),都存進(jìn)左邊某一行的對(duì)象里。(左邊每一行對(duì)應(yīng)一個(gè)對(duì)象)3.左右表格上方都有’刪除’按鈕,如果點(diǎn)擊左側(cè)’刪除’按鈕,那么這一行的存儲(chǔ)對(duì)象就被刪了,于是右邊和它對(duì)應(yīng)的數(shù)據(jù)也沒(méi)餓了。如果選中右側(cè)某一行,點(diǎn)擊’刪除’,那么只在左側(cè)的對(duì)象里刪除右側(cè)這一行的數(shù)據(jù)存儲(chǔ)。

框架:用了Bootstrap jQuery

下面是代碼只有我說(shuō)的添加tr刪除tr的功能實(shí)現(xiàn)。并沒(méi)有創(chuàng)建對(duì)象和添加數(shù)據(jù),有沒(méi)有老哥有思路的,在線等,急!!!

代碼:

<p class='col-md-5 clearfix'><button class='button1'>新增</button><button class='button1_del'>刪除</button><table border='1px solid #000' class='text-center'> <thead class='zType_thead text-center'><tr> <th></th> <th>納稅人識(shí)別號(hào)</th> <th>納稅人名稱</th></tr> </thead> <tbody class='zType_tbody'> </tbody></table> </p> <p class='col-md-offset-1 col-md-5'><button class='button2'>新增</button><button class='button2_del'>刪除</button><button type='submit'>開(kāi)始填報(bào)</button><form method='post'> <table border='1px solid #000'><thead> <tr class='zType_table_th'><th>計(jì)算期類型</th><th>期間</th><th>征收方式</th> </tr></thead><tbody class='zType_all'></tbody> </table></form> </p>

js代碼:

//點(diǎn)擊選中右側(cè)表格的某一行$(’.zType_all’).on(’click’,’tr’,function(){//點(diǎn)擊某一行 此行背景色改變,其他行恢復(fù)白色。點(diǎn)擊的那一行添加了name屬性,然后刪除其他tr的name值,為的是之后聯(lián)系起來(lái),有個(gè)name屬性作為橋梁,比如刪除,就可以在刪除掉對(duì)應(yīng)帶有name值的tr$(’.zType_all’).children().css({'background':'#fff','color':'#000'}).removeAttr(’name’); $(this).css({'background':'#bfaadc','color':'#000'}); if(!$(this).attr(’name’)){ $(this).attr('name',’zType_tr_checked1’); }})//右側(cè)刪除按鈕 點(diǎn)擊刪除帶有name的tr$(’.button2_del’).on(’click’,function(){ $(’tr[name=zType_tr_checked1]’).remove();})//左側(cè)添加按鈕$(’.button1’).on(’click’,function(){ $(’.zType_tbody’).append(’<tr><td><span class='glyphicon glyphicon-chevron-right'></span></td><td><input type='text' name='shibiehao'></td><td><input type='text' name='mingcheng'></td></tr>’);})//選中左側(cè)表格的tr$(’.zType_tbody’).on(’click’,’tr’,function(){ //依然還是點(diǎn)擊某一行 此行背景色改變,其他行恢復(fù)白色。點(diǎn)擊的那一行添加了name屬性,然后刪除其他tr的name值,為的是之后聯(lián)系起來(lái),有個(gè)name屬性作為橋梁,比如刪除,就可以在刪除掉對(duì)應(yīng)帶有name值的tr $(’.zType_tbody’).children().css({'background':'#fff'}).removeAttr(’name’); $(this).css({'background':'#bfaadc'}).children().eq(0).children() if(!$(this).attr(’name’)){ $(this).attr('name',’zType_tr_checked2’); }})//點(diǎn)擊左側(cè)刪除按鈕,刪掉左側(cè)選中的tr$(’.button1_del’).on(’click’,function(){ $(’tr[name=zType_tr_checked2]’).remove();})

問(wèn)題解答

回答1:

簡(jiǎn)單說(shuō)下我的思路:每個(gè) DOM 結(jié)構(gòu)維護(hù)一個(gè)數(shù)據(jù)對(duì)象,假設(shè)你的 HTML 結(jié)構(gòu)為(emmet語(yǔ)法):

.app-test > .col-md-5.app-test-taxpayer + .col-md-5.app-test-report

那么:

上面分為三個(gè)組件

.app-test 負(fù)責(zé)維護(hù)所有納稅人數(shù)據(jù)(即左側(cè)表格);

左側(cè)列表的每個(gè) tr 維護(hù)對(duì)應(yīng)納稅人的數(shù)據(jù)(即右側(cè)表格);

兩側(cè)的所有 tr 都可以視為一個(gè)小的組件 —— 麻雀雖小五臟俱全;

總結(jié)出為:整個(gè)功能組件 > 左側(cè) tr 組件 + 右側(cè) tr 組件;

你可以理解為父子組件傳值;

大致實(shí)現(xiàn)如下:首先,兩個(gè)表格屬于一個(gè)功能模塊,假設(shè)為 TaxesReport:

(function($){ // 左側(cè) tr 組件 var TaxesReportTaxpayer = function(trs){return this; };// 右側(cè) tr 組件 var TaxesReportReporter = function(trs, taxpayer){// 當(dāng)前納稅人的報(bào)表,對(duì)應(yīng)右側(cè)的列表?xiàng)l目this.reports = []; return this; };// 一個(gè)獨(dú)立的功能模塊 var TaxesReport = function(element){// 全部納稅人,即左側(cè)列表對(duì)應(yīng)的數(shù)據(jù)源this.taxpayers = [];// 當(dāng)前選擇的納稅人,即左側(cè)列表中的紫色高亮行this.currentTaxpayer = null; };// 應(yīng)用實(shí)例 - 假設(shè): .test > .col-md-5.clearfix var trDemo = new TaxesReport( $(’.app-test’) ); })(jQuery);

TaxesReportTaxpayer 和 TaxesReportReporter 都需要傳入一個(gè) TaxesReport 實(shí)例,用于【子組件調(diào)用父組件】 方法或數(shù)據(jù)

點(diǎn)擊左側(cè)新建按鈕新建納稅人:

// TaxesReport() 中var _that = this, $taxpayerAdd = $(’.button1), $taxpayerList = $(’.zType_tbody’); // 新建納稅人 $taxpayerAdd.on(’click’, function(){ // 實(shí)例化納稅人組件 var taxpayer = new TaxesReportTaxpayer(_that);// 增加行 $taxpayerList.append( taxpayer.item );// 新增數(shù)據(jù) _that.setTaxpayer( taxpayer.data );// 自動(dòng)高亮 if(!_that.currentTaxpayer) {_that.currentTaxpayer = taxpayer; }});

右側(cè)新增納稅人的報(bào)表類型,如:

// TaxesReport() 中var _that = this, $reportAdd = $(’.button2’), $reportList = $(’.zType_all’); // 新增納稅人報(bào)表類型$reportAdd.on(’click’, function(){ // 請(qǐng)從左側(cè)選擇一個(gè)納稅人 if( !_that.currentTaxpayer ) {console.log(’請(qǐng)從左側(cè)選擇一個(gè)納稅人’);return; }// 實(shí)例化報(bào)表組件 var report = new TaxesReportReporter(_that);// 增加行 $reportList.append( report.item );// 增加數(shù)據(jù) // _that.currentTaxpayer.setReport(report.data) _that.currentTaxpayer.item.trigger(’setReport’, report.data);// 查看是否添加成功 console.log( _that.currentTaxpayer.reports );});

刪除的時(shí)候,除了刪除對(duì)應(yīng)的 tr 結(jié)構(gòu),刪除 tr 對(duì)應(yīng)的數(shù)據(jù),涉及到的兩個(gè)數(shù)據(jù)對(duì)象(左側(cè)的 taxpayers 和 右側(cè)的 reports) 都是數(shù)組結(jié)構(gòu),你可以為自定義鍵名方法,為新的實(shí)例(納稅人或報(bào)表)創(chuàng)建唯一標(biāo)識(shí),并使用 <tr data-identify='唯一標(biāo)識(shí)'>···</tr> 建立起取值參數(shù)。

鑒于你可能都是靜態(tài)數(shù)據(jù)(非從數(shù)據(jù)庫(kù)中取出的帶有主鍵標(biāo)識(shí)的數(shù)據(jù)),且可能刪除數(shù)組中的任意一個(gè)條目進(jìn)而導(dǎo)致數(shù)組下標(biāo)丟失,所以,最好的方法是建立一個(gè)可創(chuàng)建不重復(fù)值的方法,用以給生成的組件(左側(cè)或右側(cè))生成并添加一個(gè)唯一標(biāo)識(shí)。

回答2:

產(chǎn)生一個(gè)數(shù)據(jù)緩存,在 key-model 的形式保存數(shù)據(jù),右邊的 model 里有一個(gè) children 保存對(duì)應(yīng)的右側(cè)數(shù)據(jù)

左側(cè)切換的時(shí)候,直接從 key-model 數(shù)據(jù)緩存里找到對(duì)應(yīng)的 model.children,重繪右側(cè)的列表

左側(cè)添加刪除的時(shí)候?qū)?yīng)的從 key-model 數(shù)據(jù)緩存里添加刪除就好

右側(cè)添加刪除的時(shí)候也是一樣的,這個(gè)時(shí)候可以對(duì)找到對(duì)應(yīng)的 model.children

由于使用 jQuery,jQuery 可以通過(guò) data() 把數(shù)據(jù)附加到 DOM 上,所以上述 key-model 可以直接采用之種形式把每個(gè) model 附加到每行(左側(cè))的 DOM 上,右側(cè)附加不附加問(wèn)題都不大

思路如此,代碼你可以先嘗試寫下

標(biāo)簽: JavaScript
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
樱花影视一区二区| 国产在线精品视频| 国产精品久久久久久久第一福利 | 26uuu国产电影一区二区| 亚洲美女偷拍久久| 国产激情偷乱视频一区二区三区| 欧美日韩精品免费看 | 日韩免费观看高清完整版| 亚洲女同女同女同女同女同69| 国产一区二区三区日韩| 亚洲尤物影院| 国产欧美一区二区三区网站| 人人爽香蕉精品| 狠狠综合久久av一区二区老牛| 在线观看91av| 日韩电影网1区2区| 禁久久精品乱码| 精品国产91久久久久久久妲己| 亚洲欧美激情视频在线观看一区二区三区 | 久久精品国产第一区二区三区最新章节 | 精品少妇一区二区三区在线播放 | 久久精品国产**网站演员| 极品少妇一区二区三区| 欧美丰满一区二区免费视频| 亚洲天天做日日做天天谢日日欢| 成人永久免费视频| 日本道免费精品一区二区三区| 中文字幕五月欧美| zzijzzij亚洲日本少妇熟睡| 久久亚洲一区二区| 亚洲日本中文字幕区| 成人av片在线观看| 欧美日韩亚洲另类| 五月天婷婷综合| 亚洲人成在线影院| 国产日韩精品视频一区| 粉嫩一区二区三区在线看| 欧美性大战久久久| 午夜a成v人精品| 99国产精品视频免费观看一公开| 精品国产一区二区三区久久久蜜月 | 91蜜桃视频在线| 在线电影院国产精品| 奇米色一区二区| 久久久综合网| 亚洲网友自拍偷拍| 99精品国产99久久久久久福利| 亚洲国产精品精华液2区45| 成人综合在线视频| 91成人免费在线视频| 性感美女极品91精品| 国产三区二区一区久久| 亚洲欧洲三级电影| 欧美日韩一区在线播放| 精品福利一区二区三区免费视频| 极品少妇xxxx精品少妇偷拍| 久久亚洲不卡| 午夜婷婷国产麻豆精品| 国产欧美日韩综合精品二区| 国产精品黄色在线观看| 欧美特黄视频| 国产精品白丝在线| 国产精品xnxxcom| 国产欧美精品一区二区色综合朱莉 | 国产精品影视在线观看| 精品视频999| 久久国产生活片100| 久久综合影音| 日韩av在线播放中文字幕| 久久这里只有| 日韩成人免费电影| 久热re这里精品视频在线6| 天堂影院一区二区| 在线亚洲免费视频| 老司机精品视频导航| 欧美性大战xxxxx久久久| 免费在线观看视频一区| 欧美日韩一区不卡| 久久69国产一区二区蜜臀| 欧美日韩国产一级片| 国产精品自在欧美一区| 日韩一级二级三级精品视频| 国产成人av一区二区| 91精品国产一区二区三区香蕉| 黄页网站大全一区二区| 欧美精品三级日韩久久| 国产成人精品aa毛片| 欧美精品一区二区久久久| 午夜国产精品视频| 国产精品福利一区| 亚洲精品社区| 亚洲欧美另类久久久精品| 1024成人| 亚洲一区二区三区中文字幕| 一本色道久久综合狠狠躁的推荐| 青青草国产精品97视觉盛宴| 欧美日韩国产美女| 成人免费av资源| 欧美激情一区在线| 亚洲久久视频| 日日噜噜夜夜狠狠视频欧美人| 色欧美片视频在线观看| 久久精品国产精品亚洲红杏| 日韩视频免费直播| 99视频在线精品| 国产精品传媒视频| 奶水喷射视频一区| 精品一区二区三区在线播放视频| 欧美视频第二页| 99久久99久久精品免费看蜜桃| 国产精品久久久久婷婷二区次| 正在播放亚洲| 日韩**一区毛片| 日韩一区二区三区免费观看| 99re视频精品| 亚洲精品伦理在线| 欧美日韩精品一区二区天天拍小说| 成人白浆超碰人人人人| 亚洲欧洲精品一区二区三区不卡| 国产私拍一区| 国产专区综合网| 欧美激情一区二区三区全黄| 在线亚洲自拍| 国内成+人亚洲+欧美+综合在线 | 日韩一区二区精品| 国产综合网站| 麻豆精品一区二区| 国产婷婷色一区二区三区 | 亚洲电影av| 久久国产夜色精品鲁鲁99| 亚洲精品一区二区三区精华液| 亚洲电影在线| 精东粉嫩av免费一区二区三区| 午夜在线成人av| 91在线精品一区二区| 国产精品第一页第二页第三页| 免费在线亚洲| 成人v精品蜜桃久久一区| 亚洲青青青在线视频| 欧美日韩一区国产| 国产伊人精品| 蜜桃av一区二区三区电影| 亚洲欧洲色图综合| 国产精品v亚洲精品v日韩精品| 亚洲国产乱码最新视频| 欧美一区二区三区免费大片| 狠狠爱www人成狠狠爱综合网| 视频一区在线播放| 精品久久久久av影院| 亚洲一区二区三区精品动漫| 国产·精品毛片| 亚洲午夜在线视频| 精品乱码亚洲一区二区不卡| 国产精品推荐精品| 国产凹凸在线观看一区二区| 亚洲另类在线一区| 欧美一区二区视频网站| 一区二区三区高清视频在线观看| 极品少妇一区二区三区精品视频 | av福利精品导航| 午夜影院久久久| www久久精品| 色菇凉天天综合网| 精品91久久久久| 久久成人精品无人区| 亚洲欧美另类图片小说| 精品久久人人做人人爱| 色综合久久久网| 亚洲网站视频| 国产麻豆精品在线观看| 亚洲成人免费在线| 国产精品无码永久免费888| 91精品在线免费观看| 玖玖国产精品视频| 亚洲丰满在线| 99精品视频在线免费观看| 美女在线视频一区| 亚洲精品大片www| 国产亚洲一区二区三区在线观看| 欧美偷拍一区二区| 日韩香蕉视频| 欧美精品激情| 成人污视频在线观看| 美女看a上一区| 亚洲精品乱码久久久久| 久久影院视频免费| 欧美区一区二区三区| 免费日韩视频| 亚洲激情精品| 99国产欧美另类久久久精品| 美女脱光内衣内裤视频久久网站| 亚洲精品视频在线观看网站| 国产午夜精品久久| 精品久久免费看| 678五月天丁香亚洲综合网| 色婷婷av一区二区三区软件| 国产午夜精品在线| 亚洲国产精品日韩| 午夜激情一区| 91网站最新网址|