我这里有一个我为网站编写的 javascript 插件,我正在修改插件以添加一些额外的功能。
该插件早些时候接受了一个项目数组作为输入,如下所示(最终创建一个小的可视化):
Tom Hank
Will Smith
Chirstopher Nolan
Keanu Reeves
在内部,插件使用排序函数对名称进行排序,如下所示:
groups = groups.sort(function (a, b) {
if (a.content > b.content) {
return 1;
}
if (a.content < b.content) {
return -1;
}
return 0;
});
其中a.content
和b.content
都是"Keanu Reaves"
等字符串
但是,现在我已经更改了发送到插件的输入,而不是发送输入 strings
,我现在发送 html 作为输入。例如:
<div class="sampleDiv"><span class="">Keanu Reaves</span></div>
<div class="sampleDiv"><span class="">Christopher</span></div> etc.
其中每个项目由
var itemSrc= '<div class="sampleDiv"><span class="">' +
'Keanu Reaves' +
'</span></div>';
我必须类似地对插件中的项目进行排序(在那个排序函数中),但是现在我正在发送 html(a.content 现在有上面的 html),我想从 SO 那里得到一些关于我如何能的想法在上面的函数中排序(之前的排序也应该保留,以防我以后将输入更改为仅发送字符串)。 有什么建议吗?
最佳答案
在排序函数中,首先去掉 html 标签。有了结果字符串,再进行排序。
groups = groups.sort(function (a, b) {
var x = a.toLowerCase().replace(/<[a-zA-Z\/][^>]*>/g,''), y = b.toLowerCase().replace(/<[a-zA-Z\/][^>]*>/g,'');
return x < y ? -1 : x > y ? 1 : 0;
});
希望对您有所帮助。
关于javascript - 对插件内的字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458109/