Jquery 。每个循环都不能与html中的.sort一起工作

Jquery 。每个循环都不能与html中的.sort一起工作,jquery,html,sorting,each,Jquery,Html,Sorting,Each,我下面的代码对于所有selecttag项的字母排序很好 $("select").html($("option").sort(function (a, b) { return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1 })) 请回答。你的排序与任何东西都没有联系,它只是自己坐着。你的排序与任何东西都没有联系,它只是

我下面的代码对于所有
select
tag项的字母排序很好

$("select").html($("option").sort(function (a, b) {
     return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1
 }))

请回答。

你的排序与任何东西都没有联系,它只是自己坐着。

你的排序与任何东西都没有联系,它只是自己坐着。

你的排序与任何东西都没有联系,它只是自己坐着。

你的排序与任何东西都没有联系,它只是自己坐着。

语法不正确,
each
方法接受对所选元素集中的每个元素执行的函数。尝试用一个函数包围排序代码,并提供给每个:

$("select").each(function(){
   $(this).html($(this).children("option").sort(function (a, b) {
         return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1
     }));    
});
$(“选择”)。每个(函数(){
$(this.html($(this.children)(“选项”).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()

JS Fiddle:

语法已禁用,
每个
方法接受一个函数,以对所选元素集中的每个元素执行。尝试用一个函数包围排序代码,并提供给每个

$("select").each(function(){
   $(this).html($(this).children("option").sort(function (a, b) {
         return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1
     }));    
});
$(“选择”)。每个(函数(){
$(this.html($(this.children)(“选项”).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()

JS Fiddle:

语法已禁用,
每个
方法接受一个函数,以对所选元素集中的每个元素执行。尝试用一个函数包围排序代码,并提供给每个

$("select").each(function(){
   $(this).html($(this).children("option").sort(function (a, b) {
         return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1
     }));    
});
$(“选择”)。每个(函数(){
$(this.html($(this.children)(“选项”).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()

JS Fiddle:

语法已禁用,
每个
方法接受一个函数,以对所选元素集中的每个元素执行。尝试用一个函数包围排序代码,并提供给每个

$("select").each(function(){
   $(this).html($(this).children("option").sort(function (a, b) {
         return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1
     }));    
});
$(“选择”)。每个(函数(){
$(this.html($(this.children)(“选项”).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()
JS小提琴:

使用

$("select").each(function() {
    var $this = $(this);
    $this.html($("option", $this).sort(function (a, b) {
      return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1 
    }))
});
$(“选择”)。每个(函数(){
var$this=$(this);
$this.html($($option“,$this).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()
您的示例不起作用,因为您循环使用每个选项而不是每个选择,并且排序没有链接到任何内容。

使用

$("select").each(function() {
    var $this = $(this);
    $this.html($("option", $this).sort(function (a, b) {
      return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1 
    }))
});
$(“选择”)。每个(函数(){
var$this=$(this);
$this.html($($option“,$this).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()
您的示例不起作用,因为您循环使用每个选项而不是每个选择,并且排序没有链接到任何内容。

使用

$("select").each(function() {
    var $this = $(this);
    $this.html($("option", $this).sort(function (a, b) {
      return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1 
    }))
});
$(“选择”)。每个(函数(){
var$this=$(this);
$this.html($($option“,$this).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()
您的示例不起作用,因为您循环使用每个选项而不是每个选择,并且排序没有链接到任何内容。

使用

$("select").each(function() {
    var $this = $(this);
    $this.html($("option", $this).sort(function (a, b) {
      return a.text.toUpperCase() == b.text.toUpperCase() ? 0 : a.text.toUpperCase() < b.text.toUpperCase() ? -1 : 1 
    }))
});
$(“选择”)。每个(函数(){
var$this=$(this);
$this.html($($option“,$this).sort(函数a,b){
返回a.text.toUpperCase()==b.text.toUpperCase()?0:a.text.toUpperCase()

您的示例不起作用,因为您循环使用每个选项而不是每个选择,并且排序没有链接到任何内容。

您希望调用选择元素上的每个
,然后获取每个选择的子
选项
元素,对它们进行排序并再次将它们分配给选择元素

$("select").each(function(idx, el) {
  $(el).html( $(el).children("option").sort(your_sort) );
});

您要调用select元素上的
。每个
,然后获取每个select的子
选项
元素,对它们进行排序并再次将它们分配给select元素

$("select").each(function(idx, el) {
  $(el).html( $(el).children("option").sort(your_sort) );
});

您要调用select元素上的
。每个
,然后获取每个select的子
选项
元素,对它们进行排序并再次将它们分配给select元素

$("select").each(function(idx, el) {
  $(el).html( $(el).children("option").sort(your_sort) );
});

您要调用select元素上的
。每个
,然后获取每个select的子
选项
元素,对它们进行排序并再次将它们分配给select元素

$("select").each(function(idx, el) {
  $(el).html( $(el).children("option").sort(your_sort) );
});

不要更改
元素的HTML。只需重新排列现有的
元素即可

function byTextCaseInsensitive(a, b) {
    var ta = a.text.toUpperCase(),
        tb = b.text.toUpperCase();
    return ta === tb ? 0 : ta < tb ? -1 : 1;
}

$("select").each(function () {
    $(this).find("option").sort(byTextCaseInsensitive).appendTo(this);
});
函数ByTextCaseSensitive(a,b){
var ta=a.text.toUpperCase(),
tb=b.text.toUpperCase();
返回ta==tb?0:ta

提示:在HTML DOM中附加现有节点会将其从以前的位置移动。

不要更改
元素的HTML。只需重新排列现有的
元素即可

function byTextCaseInsensitive(a, b) {
    var ta = a.text.toUpperCase(),
        tb = b.text.toUpperCase();
    return ta === tb ? 0 : ta < tb ? -1 : 1;
}

$("select").each(function () {
    $(this).find("option").sort(byTextCaseInsensitive).appendTo(this);
});
函数ByTextCaseSensitive(a,b){
var ta=a.text.toUpperCase(),
tb=b.text.toUpperCase();
返回ta==tb?0:ta

提示:在HTML DOM中附加现有节点会将其从以前的位置移动。

不要更改
元素的HTML。只需重新排列现有的
元素即可

function byTextCaseInsensitive(a, b) {
    var ta = a.text.toUpperCase(),
        tb = b.text.toUpperCase();
    return ta === tb ? 0 : ta < tb ? -1 : 1;
}

$("select").each(function () {
    $(this).find("option").sort(byTextCaseInsensitive).appendTo(this);
});
函数ByTextCaseSensitive(a,b){
var ta=a.text.toUpperCase(),
tb=b.text