javascript - 查找匹配项并按匹配项排序,然后按字母顺序排序

标签 javascript jquery sorting

到目前为止的代码

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;
}
return (bt < at) ? 1 : -1;
}

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

可以返回“Мебельное производство”上的所有匹配项, 我想在下一个路返回匹配

var match = "Мебельное производство, Строительство";

并返回“Мебельное производство”的所有匹配项和“Строительство”的匹配项,然后按字母顺序返回其余项。

最佳答案

这是一个考虑匹配字符串顺序的版本。

function sort(a, b) {
  var matches = match.split(/,\s*/);
  var at = jQuery(a).text();
  var bt = jQuery(b).text();

  for (var i = 0; i < matches.length; ++i) {
    var m = matches[i];
    
    if (at.indexOf(m) >= 0 && bt.indexOf(m) < 0) {
      return -1;
    } else if (bt.indexOf(m) >= 0 && at.indexOf(m) < 0) {
      return 1;
    }
  }
  return (bt < at) ? 1 : -1;
}

var match = "Мебельное производство, Строительство";
jQuery(".orderings tr").sort(sort).appendTo('.orderings');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<table class="orderings">
  <tr>
    <td>Мебельное производство</td>
  </tr>
  <tr>
    <td>Neither</td>
  </tr>
  <tr>
    <td>Строительство</td>
  </tr>
  <tr>
    <td>Neither</td>
  </tr>
  <tr>
    <td>Another Мебельное производство</td>
  </tr>
</table>

关于javascript - 查找匹配项并按匹配项排序,然后按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30196221/

相关文章:

javascript - Express Node.JS - 接收 Redis 回调,执行 promise

javascript - 使用 REST API 时,Meteor 是否保留 react 性

jquery 验证规则和 autoNumeric 插件

javascript - 如何使用 JavaScript 将存储在变量中的 textarea 的值传递到 div 中

c - 快速排序数组随机数生成器没有打印任何错误

javascript - 我们可以提交一个jsp表单两次吗?

javascript - $.clone 与 ajax XHR 请求会中断事件吗?

javascript - 隐藏JQuery后Div不显示

c++ - 下界上界给出相同的结果

mysql - SELECT WHERE IN (a,b,c) 查询 : sort the results by order of condition (a, b,c)