我想添加一个像这个小提琴的元素,但是当字符串具有UTF-8字符时,我有一个问题来比较我的字符串,因为"é" is > at all basics letters
.
- Apples
- Carrots
- Clams
- Oysters
- Wheat
- Barley
- éggs
- Millet
- Oranges
- Olives
$(".ingredient").click(function() {
var element = $(this);
var added = false;
var targetList = $(this).parent().siblings(".ingredientList")[0];
$(this).fadeOut("fast", function() {
$(".ingredient", targetList).each(function() {
if ($(this).text() > $(element).text()) {
$(element).insertBefore($(this)).fadeIn("fast");
added = true;
return false;
}
});
if (!added) $(element).appendTo($(targetList)).fadeIn("fast");
});
});
你有解决方案吗?
您可以使用该localeCompare()
方法对包含变音符号的文本进行排序.试试这个:
$(".ingredient").click(function() { var $element = $(this); var $targetList = $element.closest('.ingredientList').siblings().first(); $element.fadeOut("fast", function() { $element.appendTo($targetList); $(".ingredient", $targetList).sort(function(a, b) { return $(a).text().localeCompare($(b).text()); }).appendTo($targetList); $element.fadeIn('fast'); }); });
更新了小提琴
请注意,我修改了您的逻辑以使选择器更有效,并且还启用了排序算法.
localeCompare MDN文档