2015-05-12 79 views
0

我有一個這個值'Мебельноепроизводство'我有一張表,其中包含所有與'Мебельноепроизводство'巧合的相關項目。以相同的名字,然後按字母順序排列

到目前爲止,我按照字母順序排序,但我需要返回表中的所有符合值'Мебельноепроизводство',其餘按字母順序排列。

到目前爲止我stucked這裏:

jQuery(".orderings tr").sort(sort).appendTo('.orderings'); 
function sort(a, b){ 
    return (jQuery(b).text()) < (jQuery(a).text()) ? 1 : -1;  
} 

任何想法?

+0

你想讓初始值和匹配的文本也按照字母順序排序嗎? –

+0

我加了兩個,因爲你沒有指定。享受:) –

回答

1

你需要做的第一件比較,那麼阿爾法排序

這一個不比賽雖然進行排序:

jQuery(".orderings tr").sort(sort).appendTo('.orderings'); 
var match = "Мебельное производство"; 
function sort(a, b) { 
    var at = jQuery(a).text(); 
    var bt = jQuery(b).text(); 
    if (at.indexOf(match) >= 0) 
    { 
     return -1; // force to the top 
    } 
    return (bt < at) ? 1 : -1; 
} 

這一個也做最初的排序的比賽:

function sort(a, b) { 
    var at = jQuery(a).text(); 
    var bt = jQuery(b).text(); 
    console.log(at.indexOf(match)); 
    if (at.indexOf(match) >= 0 && bt.indexOf(match) < 0) { 
     return -1; 
    } else if (bt.indexOf(match) >= 0 && at.indexOf(match) < 0) { 
     return 1; 
    } 
    return (bt < at) ? 1 : -1; 
} 

var match = "Мебельное производство"; 
jQuery(".orderings tr").sort(sort).appendTo('.orderings'); 

的jsfiddle:http://jsfiddle.net/s7nb5o6g/5/

注:else if測試不應要求,由於排序順序的副作用,但它沒有傷害到離開它。例如http://jsfiddle.net/s7nb5o6g/6/仍然有效

+0

我只是試過,你能檢查嗎? http://jsfiddle.net/s7nb5o6g/3/ –

+1

@ChrisChong:http://jsfiddle.net/s7nb5o6g/5/ –

+0

哇,它的作品完美!謝謝。 還有一個問題,它可以搜索的例子,兩個不同的比賽? –

0

這部分代碼可以幫助你:

jQuery(".orderings tr").sort(sort).appendTo('.orderings'); 
function sort(a, b){ 
    // if a contains Мебельное производство, and b does not contain it, return -1 
    // if b contains Мебельное производство, and a does not contain it, return 1 
    // else proceed normally 
    return (jQuery(b).text()) < (jQuery(a).text()) ? 1 : -1;  
} 
相關問題