[問題] 如何在最快速度把item換掉?

看板Ajax作者 (mingray/nosql)時間15年前 (2009/08/03 20:09), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
我有很多個下拉選單, 下拉選單之中的選項是從某個database來的, 如果我想做個外掛, 執行按鈕後, 他會把選單中的選項全部從英文換成中文, 我目前的做法是: 1.做個暴力陣列對照表比較字串('a' == 'a' 的方式) 2.for迴圈暴力置換每個select的option的innerText 除此之外有更快的方法嗎? -- 我的script程式碼如下 var boolErr = false; var strNavi = navigator.appName; var boolIE = false; var boolOpera = false; try{ if(strNavi == 'Opera'){ var docC = window.top.contol.document; boolOpera = true; }else if (strNavi == 'Microsoft Internet Explorer'){ var docC = window.top.contol.document; boolIE = true; } }catch (e){ alert('hacking failed'); boolErr = true; } if(!boolErr){ function searchDB(strE){ var dataIDBArray1 = new Array(6130); var dataIDBArray2 = new Array(6130); // 下略database數萬字 var strC = strE; var intlen = dataIDBArray1.length; for(var i_th = 0; i_th < intlen; i_th++){ if(dataIDBArray1[i_th] == strE){ strC = dataIDBArray2[i_th]; break; } } return strC; } var dMenuHead = docC.getElementsByName('headMenu')[0]; var dMenuBody = docC.getElementsByName('bodyMenu')[0]; // 下略 var intlen; intlen = dMenuHead.length; for(var i_th = 0; i_th < intlen; i_th++){ dMenuHead[i_th].innerText = searchDB(dMenuHead[i_th].innerText); } intlen = dMenuBody.length; for(var i_th = 0; i_th < intlen; i_th++){ dMenuBody[i_th].innerText = searchDB(dMenuBody[i_th].innerText); } // 下略 } --

06/25 21:30,
希望對您有幫助 http://ptt.cc 廣告好多放著爛
06/25 21:30

06/25 21:30,
希望對您有幫助 http://ptt.cc 反正網友會上班
06/25 21:30

06/25 21:30,
希望對您有幫助 http://ptt.cc 人力波特不用錢
06/25 21:30

06/25 21:30,
希望對您有幫助 http://ptt.cc 還可以賺發文篇
06/25 21:30

06/25 21:30,
希望對您有幫助 http://ptt.cc
06/25 21:30

06/25 21:30,
希望對您有幫助 http://ptt.cc ptt.cc
06/25 21:30
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.201.115

08/03 20:11, , 1F
附註 因為select的各個option有value 可能會變動
08/03 20:11, 1F

08/03 20:11, , 2F
所以我才用innerText置換
08/03 20:11, 2F

08/03 21:24, , 3F
剛有個解 IE7比opera9.6快的 因為我要置換的是字串
08/03 21:24, 3F

08/03 21:24, , 4F
所以用字串當陣列索引 在ie下速度快很多
08/03 21:24, 4F
文章代碼(AID): #1ATjDyq4 (Ajax)