大家晚上好。
好的,我有这个 <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/