首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何对<div>s (上升和下降)进行排序并识别它们的状态?

如何对<div>s (上升和下降)进行排序并识别它们的状态?
EN

Stack Overflow用户
提问于 2013-03-22 00:40:18
回答 1查看 1K关注 0票数 3

我正在使用Javascript对一个表进行排序,该表被他们的子元素拆分为<div>。代码成功地进行了一种排序,但是我需要添加对升序和降序排序的功能。

我尝试向排序属性中添加一个调用者,该属性表示要单击哪个表头。我将全局变量设置为默认值为1,然后使用if语句在1和2之间翻转,以表示升序或下降。

该表将只排序升序和降序一次,并且似乎依赖于移动其他表标题,然后才能移动下一个表头。

问题的JSFiddle

代码语言:javascript
运行
AI代码解释
复制
 var OrderAuthor = 1;

function sortUsingNestedText(parent, childSelector, keySelector, caller)
{
        var items = parent.children(childSelector).sort(function(a, b)
        {
                var vA = $(keySelector, a).text();
                var vB = $(keySelector, b).text();
                if (caller.data('order_by') == 'author')
                {
                        if (OrderAuthor == 1)
                        {
                                OrderAuthor = 2;
                                OrderSubject = 1;
                                OrderDate = 1;
                                return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
                        }
                        else
                        {
                                OrderAuthor = 1;
                                return (vA > vB) ? -1 : (vA < vB) ? 1 : 0;
                        }
                }
        });
        parent.append(items);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-22 01:03:46

我会像这样做http://jsfiddle.net/zdCT6/5/

代码语言:javascript
运行
AI代码解释
复制
var sortBy = ""
var asc = true

function sortUsingNestedText(parent, childSelector, keySelector) {
     if (sortBy == keySelector) { asc = !asc } else { asc = true }
     sortBy = keySelector
     var items = parent.children(childSelector).sort(function(a, b) {
        var vA = $.trim($(keySelector, a).text());
        var vB = $.trim($(keySelector, b).text());        
        return ((vA < vB) ? -1 : (vA > vB) ? 1 : 0) * (asc ? 1 : -1);           
    });

    parent.append(items);
 }

简单得多,而且不需要每次都在那里重新设置这些标志,而且如果分支的话,也会少很多。

还请注意trim()调用。您的文本()返回带有前导空格chr的项,它将自动首先移动该项/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15565975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文