如何使用Jquery忽略重音列表下拉列表中的项目?

时间:2016-07-05 14:29:32

标签: jquery html

我想按新月订单对下拉列表进行排序。

以下代码(请参阅下面的代码段)执行我想要的操作。但是,它并没有忽略重音,这就是我的目标。

有人可以帮我吗?



window.addEventListener("load", function () {
    $("#MyID").html($("#MyID option").sort(function (a, b) {
		return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
	}))
}, false);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="MyID">
          <option> Papél </option>
          <option> Árvore </option>
          <option> Carne </option>
          <option> Banana </option>
          <option> Água</option>
          <option> Macaco</option>
          <option> Maçã</option>
     </select>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

您可以使用 localeCompare() 来实现此目的。

&#13;
&#13;
window.addEventListener("load", function () {
    $("#MyID").html($("#MyID option").sort(function (a, b) {
      return (a.text).localeCompare(b.text);
		//return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
	}));
}, false);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="MyID">
          <option> Papél </option>
          <option> Árvore </option>
          <option> Carne </option>
          <option> Banana </option>
          <option> Água</option>
          <option> Macaco</option>
          <option> Maçã</option>
     </select>
&#13;
&#13;
&#13;

有关其他方法,请参阅此链接: http://www.jstips.co/en/sorting-strings-with-accented-characters/

答案 1 :(得分:1)

使用localCompare

&#13;
&#13;
window.addEventListener("load", function () {
    $("#MyID").html($("#MyID option").sort(function (a, b) {
	return a.text.localeCompare(b.text)
    }))
}, false);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="MyID">
          <option> Papél </option>
          <option> Árvore </option>
          <option> Carne </option>
          <option> Banana </option>
          <option> Água</option>
          <option> Macaco</option>
          <option> Maçã</option>
     </select>
&#13;
&#13;
&#13;