2016-07-26 62 views
-2

我在这里遇到一个奇怪的错误,我试图按ID的名称对div进行排序。你可以在这里看看:按ID的名称对档案进行排序

https://jsfiddle.net/veeco/t3wu9tss/5/

它看起来作品...但我们错了......如果我们增加新的ID喜欢这里的例子:

https://jsfiddle.net/veeco/t3wu9tss/4/

的排序坏了。唯一的主要区别是增加了

<div id="Palu">Palu<br></div> 

我不知道为什么?这似乎很奇怪,任何人都可以提供见解?

对于那些谁需要看到完整的代码在这里: HTML

<div class="cabang"> 
    <div id="Pematangsiantar">Pematangsiantar<br></div> 
    <div id="Padang">Padang<br></div> 
    <div id="Bengkulu">Bengkulu<br></div> 
    <div id="Jambi">Jambi<br></div> 
    <div id="Cikarang">Cikarang<br></div> 
    <div id="Cirebon">Cirebon<br></div> 
    <div id="Pontianak">Pontianak<br></div> 
    <div id="Satui">Satui<br></div> 
    <div id="Samarinda">Samarinda<br></div> 
    <div id="Mataram">Mataram<br></div> 
    <div id="Palu">Palu<br></div> 

的JavaScript:

var $divs = jQuery(".cabang div"); 
var alphabeticallyOrderedDivs = $divs.sort(function (a, b) { 
    return $(a).attr('id') > $(b).attr('id'); 
}); 
jQuery(".cabang").html(alphabeticallyOrderedDivs); 
+1

您应该复制您的代码粘贴到的问题。它使得人们试图回答更容易。 – afuous

+0

两者都适合我... –

+0

请参阅[String.prototype.localeCompare()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare) – George

回答

2

试试这个:

您可以使用String.prototype.localeCompare

var $divs = jQuery(".cabang div"); 
 

 
var alphabeticallyOrderedDivs = $divs.sort(function (a, b) { 
 
    return String.prototype.localeCompare.call($(a).attr('id').toLowerCase(),$(b).attr('id').toLowerCase()); 
 
}); 
 

 
$(".cabang").html(alphabeticallyOrderedDivs);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="cabang"> 
 
     <div id="Pematangsiantar">Pematangsiantar<br></div> 
 
     <div id="Padang">Padang<br></div> 
 
     <div id="Bengkulu">Bengkulu<br></div> 
 
     <div id="Jambi">Jambi<br></div> 
 
     <div id="Cikarang">Cikarang<br></div> 
 
     <div id="Cirebon">Cirebon<br></div> 
 
     <div id="Pontianak">Pontianak<br></div> 
 
     <div id="Satui">Satui<br></div> 
 
     <div id="Samarinda">Samarinda<br></div> 
 
     <div id="Mataram">Mataram<br></div> 
 
     <div id="Palu">Palu<br></div> 
 
</div>

+0

嗨@Jayesh Chitroda,它的工作原理!相当惊讶,即使我不知道如何String.protototype.localeCompare实际工作... –