按两个属性对 jQuery 列表进行排序

2023-12-12

我有这个标记:

#a(data-row="2", data-col="3") a
#b(data-row="1", data-col="1") b
#c(data-row="1", data-col="3") c
#d(data-row="2", data-col="2") d
#e(data-row="1", data-col="2") e
#f(data-row="2", data-col="1") f

正如您所看到的,它定义了一个元素网格(3 列和 2 行)。

我需要使用 jQuery 获取此项目列表并按以下方式排序row and by col.

提供的标记的结果应该是:

b, e, c, f, d, a

我可以成功地按行排序,但我不知道按列排序的最佳方法是什么:

var gridElements = $('div');
gridElements.sort(function (a, b) {
  var contentA =parseInt( $(a).attr('data-row'));
  var contentB =parseInt( $(b).attr('data-row'));
  return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
});

代码笔:http://codepen.io/FezVrasta/pen/bVEezw

我想我应该按数据行过滤列表,然后运行sort每组再重复一遍,但是如何呢?


仅当第一个值相等时第二个值才适用,因此这应该为您完成:

var gridElements = $('div');
gridElements.sort(function (a, b) {
  var contentA =parseInt( $(a).attr('data-row'));
  var contentB =parseInt( $(b).attr('data-row'));


  //check if the rows are equal
  if (contentA === contentB) {
     var colA = parseInt( $(a).attr('data-col'));
     var colB = parseInt( $(b).attr('data-col'));

     //do the same as your already doing but using different data, from above
     return (colA < colB) ? -1 : (colA > colB) ? 1 : 0;
  }
  else {
    return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按两个属性对 jQuery 列表进行排序 的相关文章

  • jQuery 模糊验证

    我正在尝试在我创建的网页上进行 jQuery 验证 我有大约 6 个不同的字段集 其中包含页面的详细信息 我使用它是因为我隐藏并显示它们可以提供更好的用户体验 每当我尝试提交页面以及每当我添加单个字符 当文本框需要 2 个或更多字符时 时
  • 具有两个按钮的表单以不同的值提交

  • AJAX .post 异步

    以下具体执行什么操作 ajax type POST async false vs ajax type POST async true 这意味着行为有什么区别 From jQuery 站点 http api jquery com jQuery
  • 如何在浏览器调整大小时刷新屏幕?

    是否可以根据浏览器尺寸的变化刷新页面 我使用一些样式在页面上创建区域 如果浏览器缩小 布局就会中断 也许我可以用 jQuery 检测文档大小的变化 为现在查看此内容的任何人进行更新 JQuery 现在认为绑定是一个已弃用的函数 Proxim
  • Jquery动态隐藏和显示下拉菜单

    我在使下拉菜单动态显示标记的 html 代码块时遇到问题style display none 我有以下代码
  • jQuery 动画到 div 中的下一个图像

    我有一些图像div当我单击下一个按钮时 我正在尝试将其动画到 div 中的下一个 在这个 div 中 我还有上一个和下一个按钮 我显然不想为其设置动画 div class work a href class rightButton img
  • 使用jquery将Json字符串解析为html div

    我有这样的 json 字符串 common search strBusinessName Sun Shine Vision strAddress Amulia St Madhava Pharmacy Jn intPhone cache ta
  • Jquery Draggable - 如何动态创建一个新的可拖动 div,然后可以拖动?

    我正在使用 jquery 创建一个可拖动和可放置的日程安排器 当作业从未分配的列拖到小时时间段中时 原始的可拖动项目将被删除 并且新的 div 会被放置到页面中 其中包含作业详细信息 这个新创建的 div 代码块包含使其可拖动的所有参数 当
  • Chart.js 饼图动画,当通过垂直滚动在页面中的某个位置时播放一次

    我有一个简单的饼图 可以在开箱即用时进行动画显示chart js 我试图允许动画通过长垂直网页中的某个滚动点进行排队 这个想法是让下面的代码执行 只有一次新用户滚动或点击页面位置 动画将que一次就这样了 这造成了很多麻烦 因为我已经能够通
  • 填充重叠的圆形区域

    我有两个相交的圆 我想让相交区域具有颜色 即使这两个圆是透明的 我想我可以找到一些方法用 css 来做到这一点mix blend mode财产 但我没有成功 当然 我可以使圆圈具有颜色并降低其不透明度 但我希望它们是白色或透明的 其中只有重
  • 如何使用 jquery 在 ajax 调用中设置标头

    我需要从我自己的应用程序调用 Office 365 Rest API 当我在同一浏览器会话上复制并粘贴 url 时 我可以看到一些 XML 如果我将该 URL 粘贴到隐身窗口中 则会收到以下错误 The custom error modul
  • window.location.href 不工作

    我的网站是http www collegeanswerz com http www collegeanswerz com 我正在使用导轨 该代码用于搜索大学 我希望用户能够输入大学名称 单击 Enter 然后转到网址 而不是看到搜索结果 如
  • jquery如何获取右、左、上、下箭头键值

    我使用了下面的代码 每当单击箭头键 左 右 上 下 时 我得到的键值为 0 任何人都可以帮忙解决这个问题吗 document keypress function e alert key value e which 如何获取 上 下 右 左
  • Backbone.js 和本地存储。必须指定“url”属性或函数

    我正在提高有关 Backbone js 的知识 并从教程中获取了此代码示例 http bardevblog wordpress com 2012 01 16 understanding backbone js simple example
  • 如何在 html5 中加载部分 html? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 询问我们的问题推荐或查找工具 库或最喜欢的场外资源与 Stack Overflow 无关 因为它们往往会吸引固执己见的答案和垃圾邮件 反而
  • 会话变量从 while 循环发送特定变量

    我有这个简单的while 循环它从 mysql 查询中检索数据并在我的主页上显示几个链接 我想避免使用 php get 函数并将查询字符串添加到我的网址中 我正在考虑使用会话变量 但我需要帮助 而且我很确定这是无法完成的 当访问者单击 wh
  • 类型错误:$.param.querystring 不是 Yii 中的函数

    我正在使用文本字段进行搜索 这样做时我收到错误类型错误 param querystring 不是函数 我怎样才能摆脱这个 检查您的页面中是否多次包含 jquery js 我有同样的错误 原因是 yii 已
  • Jquery 对话框打开另一个页面

    有一个页面为transaction html 如何在另一个页面的弹出窗口中打开此页面 例如 jquery 对话框中的 show transactions html dialog html open transaction html in t
  • jquery .html() 不适用于 ie8

    我有一个 jquery 函数 它对 Web 服务器上的 Web 服务方法进行 ajax 调用 该方法返回一个包含数据的 html 表 我正在使用 html 渲染 div 上的返回值 这适用于 Firefox Chrome Safari 但不
  • ajaxStart() 仅调用一次,但 ajaxComplete() 调用多次

    我想对页面上的每个 AJAX 请求进行调用 I read here http docs jquery com Ajax Events that ajaxStart 全局事件 如果启动 Ajax 请求并且当前没有其他 Ajax 请求正在运行

随机推荐