到目前为止代码
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 = "Мебельное производство, Строительство";
返回'Мебельноепроизводство'的所有比赛以及'Строительство'的比赛,然后按字母顺序返回。
答案 0 :(得分:1)
这是一个将匹配字符串的排序考虑在内的版本。
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>
答案 1 :(得分:0)
如果我理解你想做什么,你可以分割字符串并使用forEach:
var matches = match.split(", ");
matches.forEach(function(value,index,array){
value.sort(a,b);
});
答案 2 :(得分:0)
这应该这样做,ymmv:
function hasText(t)
{
return this.indexOf(t) >= 0;
}
function sort(a, b)
{
var at = jQuery(a).text(),
bt = jQuery(b).text(),
matches = match.split(/, /);
// determine whether a or b has at least one match
var p = matches.some(hasText, bt) - matches.some(hasText, at);
return p ? p : at.localeCompare(bt);
}