jquery - 使用jquery通过数据属性创建选项而不重复

标签 jquery html

大家晚上好。
好的,我有这个 <li>与一些data-attribute s,例如

<li class="mix evento" data-mes="jan">

我需要获取所有data-mes从此页面上的所有 li 中,并将它们添加到 select> 选项,但不重复它们( data-mes 基本上是 data-month ,每个 li 代表一个带有某个日期的事件)。

这将用于使用漂亮的 MixitUp Plugin 来过滤 Li。按月 ( data-mes )

嗯,我知道,要获得 1 个数据属性,我应该做类似的事情

var month = $('#ulID li').data('mes');

但我不知道如何将它们提取到数组中,也不知道如何确保它们在发生多次时不会重复。非常感谢任何帮助..

编辑:此处的工作代码 http://bit.ly/16xI0yV单击“ordenar”旁边的白色按钮来测试排序功能

最佳答案

See demo here 。所有行都通过下面的注释进行解释。

// gets all `data-mes` into an array
var months = $('#ulID li').map(function() { return $(this).data('mes'); }).get();
// remove repeated meses
months = months.filter(function(e, p) { return months.indexOf(e) == p; });

// sorts the months
var order = ['jan','fev','mar','abr','mai','jun','jul','ago','set','out','nov','dez'];
orderedMonths = months.sort(function(a,b){ return order.indexOf(a) - order.indexOf(b); });

// add them, ordered, to the <select> with id #selectMes
$.each(orderedMonths, function(_, v) {
    $('#selectMes').append($('<option>').val(v).text(v));
});

关于jquery - 使用jquery通过数据属性创建选项而不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17307313/

相关文章:

javascript - 使用 javascript 或 jquery 自动将类添加到特定的 Accordion 菜单

javascript - jQuery 在我获取它时减去 css 属性值

html - 在 chrome 中调试 http 请求

html - 当我在 Expo (iOS) 中使用 Print API 打印 html 时,html 中的分页符无法按预期工作

javascript - 动画的 jQuery 条件

c# - ASP.NET、JQuery - 共享正则表达式

javascript - 如何添加二级链接到大崩组织结构图?

javascript - getJSON 给出 statut 200 但没有值

javascript - 在 JQuery 中,如何在用户单击从 DOM 中删除元素后获取元素的 offset().top

javascript - 在框架内调用 pdf 的方法