看板 Ajax 關於我們 聯絡資訊
※ 引述《TonyQ (自立而後立人。)》之銘言: : //如果這個選項內容直接就對應到字串那就可以直接做了。 : var key = $(this).text(); //範例實作,可能會需要調整 : var result = asiamap[key]; : if ( result != null){ : Asia[result] = $(this); : } : }); : 基本上就是打索引取代搜尋,你原本這種寫法每個 selector 都需要搜遍所有 h2, : 如果能只搜尋一次就把需要的東西都找回來, : 那效率會從 O(n^2) 變成 O(n) 會差蠻多的。 以你的例子來講,你的 #pvp_header > h2 只有一個, 卻要用 contains 查 n 次,這樣實在是很不經濟。 var oceania = { 'Tasmania':21 }; //原本是 //Oceania [21] = $("#pvp_header > h2:contains('Tasmania')") var Oceania = []; $("#pvp_header > h2").each(function(){ //這邊需要做一點字串上的判定,想辦法找出對應的字串 key, //如果這個選項內容直接就對應到字串那就可以直接做了。 var key = $(this).text(); //範例實作,可能會需要調整 var result = asiamap[key]; if ( result != null){ Oceania[result] = $(this); } }); http://screencast.com/t/VKfwVauT 基本上應該很好 optimize 才對,這也只是其中一種方法而已, 實際上應該是看你拿這個h2來幹麼,還有機會再更簡單一點。 -- 網頁上拉近距離的幫手 實現 GMail豐富應用的功臣 數也數不清的友善使用者體驗 這就是javascript 歡迎同好到 AJAX 板一同討論。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.140.152
ff760725:我是要當h2裡有某些特定詞組的時候,就能啟動一組code 07/04 01:13
ff760725:所以我底下會有 07/04 01:13
ff760725:for (i = 0; i < 26 ; i++) { 07/04 01:13
ff760725: if (Oceania[i].text()){ 裡面包著的東西 07/04 01:14