2015-05-12 47 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;  
} 
相关问题