2016-07-05 28 views
3

我想按新月順序對我的下拉列表進行排序。如何使用JQuery來忽略忽略重音的下拉列表中的項目?

下面的代碼(請參閱下面的代碼片段)做我想要的。但是,它不會忽視口音,這就是我的目標。

有人可以幫我嗎?

window.addEventListener("load", function() { 
 
    $("#MyID").html($("#MyID option").sort(function (a, b) { 
 
\t \t return a.text == b.text ? 0 : a.text < b.text ? -1 : 1 
 
\t })) 
 
}, false);
<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>

回答

2

您可以使用localeCompare()用於這一目的。

window.addEventListener("load", function() { 
 
    $("#MyID").html($("#MyID option").sort(function (a, b) { 
 
     return (a.text).localeCompare(b.text); 
 
\t \t //return a.text == b.text ? 0 : a.text < b.text ? -1 : 1 
 
\t })); 
 
}, false);
<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>

請參閱此鏈接其他方法: http://www.jstips.co/en/sorting-strings-with-accented-characters/

1

使用localCompare

window.addEventListener("load", function() { 
 
    $("#MyID").html($("#MyID option").sort(function (a, b) { 
 
\t return a.text.localeCompare(b.text) 
 
    })) 
 
}, false);
<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>