【发布时间】:2012-10-02 23:35:45
【问题描述】:
看下面的代码
source = $("<root><item desc='SQL'/><item desc='Microsoft'/><item desc='Action Script'><item desc='Java script'></root>")
//WAY 1: This way is not working...
source.children().sort(function(a, b)
{
var aText = $(a).attr("desc").toLowerCase();
var bText = $(b).attr("desc").toLowerCase();
if(aText == bText)
return 0;
return aText > bText ? 1 : -1;
});
alert(source[0].outerHTML);
//WAY 2: This is working...
var temp = source.children();
temp.sort(function(a, b)
{
var aText = $(a).attr("desc").toLowerCase();
var bText = $(b).attr("desc").toLowerCase();
if(aText == bText)
return 0;
return aText > bText ? 1 : -1;
});
source = $("<root/>");
source.append(temp);
alert(source[0].outerHTML);
方式 1 不工作,方式 2 工作良好。为什么我应该将孩子分配给另一个变量然后排序,将它们分配回原始变量?这是正确有效的方法吗?
你可以试试这个FIDDLE....
【问题讨论】:
-
你们为什么投反对票?这个问题是不清楚还是没有展示任何研究工作?
-
在 meta.so meta.stackexchange.com/questions/158160/… 上看到了你的 qn - 我已经对你的一些帖子投了赞成票,但不是这个:你需要说出你对方式 1 的期望以及你所看到的, 否则你对试图回答 qn 的人提出了太多要求。你很幸运能得到你的答案。尝试修复 qn,我会支持它。不久之后你就会被解禁。
标签: javascript jquery html jquery-ui-sortable