2013-05-15 79 views
0

我不確定是否有其他人遇到此問題。 我有一個數組元素的列表,需要顯示在自動建議。我最大的問題是我需要根據類別名稱中的匹配字符串顯示所有類別。如何根據匹配的字母出現順序排列字符串列表?

例如 - 如果我在搜索框中鍵入自動它應該顯示匹配的自動記錄表明像 -

梧桐 - >自動 mation - >貢獻
建築 - >自動 mation - >工業
梧桐 - >居自動 mation - > TNB
卡爾 - > THEAD 自動 - >紡織

它應該是基於匹配字母表的順序。如果前三個字符與類別匹配,則應先顯示該類別,然後再顯示該類別,並最後一次出現如此。我在jquery中使用regx來顯示匹配的字符串。我會更喜歡解決方案在jQuery其他PHP中。

如果我得到一些解決方案,這將是非常有益的。

+0

你可以包含返回結果的代碼嗎?您應該能夠在匹配的字符串的索引(位置)上進行排序。 – JustinStolle

+0

你能分享給定數組及其元素的結構嗎? – Aquillo

+0

如果鍵入 「EAD」 關鍵字然後陣列形式如下─
陣列 ( [0] => stdClass的對象 ( [SEARCH_ID] => 7878 [searched_string] =>液壓Catheads ) [1] => stdClass的對象 ( [SEARCH_ID] => 6711 [searched_string] =>井口 - 採油樹 ) [2] => stdClass的對象 ( [SEARCH_ID] => 7853 [searched_string] =>鉛 )[3] => ( )[search_id] => 8853 [Searches_string] => Eads公司 ) )Eads公司應該先顯示 – appsntech

回答

0

我使用這個綁定到按鍵:

jQuery('select.myClass').find('option').hide(); 
jQuery('select.myClass').find('option:hidden[value*="' + searchFor + '"]').show(); 

也許不是世界上最高效的代碼,但我跑得也對一堆選擇,每個都包含高達幾百個選項,尚未有重大性能問題。 同樣可以用於其他任何事情,因爲它所做的只是使用jQuery的*=選擇器。

Here for *= selector或類似here for :contains selector

所有,那麼你需要做的,以實現在jQuery的正確順序是皮卡許多jQuery的排序插件之一(或使用native javascript sort function)和排序與函數像這樣的:

var searchFor = 'foo'; 
function sortByPos(val1, val2) 
{ 
    return (val1.indexOf(searchFor) > val2.indexOf(searchFor) ? +1 : -1); 
} 
相關問題