Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jQuery追加新选项时,为什么jQuery sort()选择了错误的选项_Javascript_Jquery - Fatal编程技术网

Javascript 通过jQuery追加新选项时,为什么jQuery sort()选择了错误的选项

Javascript 通过jQuery追加新选项时,为什么jQuery sort()选择了错误的选项,javascript,jquery,Javascript,Jquery,我希望澄清为什么会发生这个问题,以及应该做些什么来避免这种行为 我有一个select,它将在事件触发器上添加新选项。当触发此触发器时,我想创建一个新的选项附加到选择,然后将所有选项按顺序排序(字母顺序或其他顺序,与此问题无关)。当我使用下面的代码执行此操作时,选项会添加到选择中,但是新选项会被选中,即使不同的选项是“选中的”选项 $(函数(){ var select=$('select'); select.append(“Nine”);//这将被选中 select.html(select.f

我希望澄清为什么会发生这个问题,以及应该做些什么来避免这种行为

我有一个
select
,它将在事件触发器上添加新选项。当触发此触发器时,我想创建一个新的
选项
附加到
选择
,然后将所有选项按顺序排序(字母顺序或其他顺序,与此问题无关)。当我使用下面的代码执行此操作时,
选项
会添加到
选择
中,但是新选项会被选中,即使不同的
选项
是“选中的”
选项

$(函数(){
var select=$('select');
select.append(“Nine”);//这将被选中
select.html(select.find('option')).sort(函数(x,y){
返回$(x).text()>$(y).text()?1:-1;
}));
});

选择一个数字
三
一个
零
两个
八

n
在Unicode中位于
Z
之后。尝试使用
.text().toLowerCase()
进行排序,或者使用jQuery对象(查找
的结果)进行排序,而类似数组(它们具有数字索引和
长度
属性)的对象在所有实例中都不应被视为数组,特别是在处理
排序
等方法时,它实际上选择了结果菜单中的最后一个选项,该选项也位于原始菜单的
所选
选项之下。它似乎将第一个
[selected]
下的所有选项视为
[selected]
,而在追加时,只会逐个选项设置和重置所选选项。万岁,jQuery坏了!此问题的正确副本为(有关保留代码并重置所选选项的代码,请参阅)。这是否回答了您的问题<在Unicode中,code>n
位于
Z
之后。尝试使用
.text().toLowerCase()
进行排序,或者使用jQuery对象(查找
的结果)进行排序,而类似数组(它们具有数字索引和
长度
属性)的对象在所有实例中都不应被视为数组,特别是在处理
排序
等方法时,它实际上选择了结果菜单中的最后一个选项,该选项也位于原始菜单的
所选
选项之下。它似乎将第一个
[selected]
下的所有选项视为
[selected]
,而在追加时,只会逐个选项设置和重置所选选项。万岁,jQuery坏了!此问题的正确副本为(有关保留代码并重置所选选项的代码,请参阅)。这是否回答了您的问题?