使用jquery通过数据属性创建选项,无需重复
各位晚上好。使用jquery通过数据属性创建选项,无需重复,jquery,html,Jquery,Html,各位晚上好。 好的,我有这个和一些数据属性,比如 <li class="mix evento" data-mes="jan"> 但我不知道如何将它们fech到一个数组中,以及如何确保它们在发生多次时不会重复。非常感谢您的帮助 编辑:此处的工作代码单击“ordenar”旁边的白色按钮以测试排序功能。下面的注释解释了所有行 // gets all `data-mes` into an array var months = $('#ulID li'
好的,我有这个
和一些数据属性,比如
<li class="mix evento" data-mes="jan">
但我不知道如何将它们fech到一个数组中,以及如何确保它们在发生多次时不会重复。非常感谢您的帮助
编辑:此处的工作代码单击“ordenar”旁边的白色按钮以测试排序功能。下面的注释解释了所有行
// 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));
});
//将所有“数据mes”放入一个数组中
var months=$('ulID li').map(函数(){return$(this.data('mes');}).get();
//去除重复的肠系膜
months=months.filter(函数(e,p){return months.indexOf(e)==p;});
//对月份进行排序
风险值顺序=['1月','fev','mar','abr','mai','jun','ago','set','out','nov','dez'];
orderedMonths=months.sort(函数(a,b){returnorder.indexOf(a)-order.indexOf(b);});
//将它们按顺序添加到id为#selectMes的
$.each(orderedMonths,function(v,v){
$('#selectMes')。追加($('').val(v).text(v));
});
。下面的注释解释了所有行
// 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));
});
//将所有“数据mes”放入一个数组中
var months=$('ulID li').map(函数(){return$(this.data('mes');}).get();
//去除重复的肠系膜
months=months.filter(函数(e,p){return months.indexOf(e)==p;});
//对月份进行排序
风险值顺序=['1月','fev','mar','abr','mai','jun','ago','set','out','nov','dez'];
orderedMonths=months.sort(函数(a,b){returnorder.indexOf(a)-order.indexOf(b);});
//将它们按顺序添加到id为#selectMes的
$.each(orderedMonths,function(v,v){
$('#selectMes')。追加($('').val(v).text(v));
});
您可以使用以下内容:
<ul id="ulID">
<li class="mix evento" data-mes="jan">Jan</li>
<li class="mix evento" data-mes="feb">Feb</li>
<!-- etc... -->
</ul>
<select></select>
jan
二月
JS:
var-months=[],$select=$('select');
$('#ulID li')。每个(函数(){
var mes=$(this.data('mes');
如果($.inArray(mes,月)=-1){
月。推送(mes);
$select.append(“”+mes+“”);
}
});
这将遍历所有li
s并检查它们的数据mes
属性。每次出现新值时,它都会添加到months
数组中。每个值都会根据此数组进行检查,以确保相同的值不会被处理两次
如果该值是唯一的,则会在“选择”菜单中添加一个额外选项
它在这里工作:您可以使用如下内容:
<ul id="ulID">
<li class="mix evento" data-mes="jan">Jan</li>
<li class="mix evento" data-mes="feb">Feb</li>
<!-- etc... -->
</ul>
<select></select>
jan
二月
JS:
var-months=[],$select=$('select');
$('#ulID li')。每个(函数(){
var mes=$(this.data('mes');
如果($.inArray(mes,月)=-1){
月。推送(mes);
$select.append(“”+mes+“”);
}
});
这将遍历所有li
s并检查它们的数据mes
属性。每次出现新值时,它都会添加到months
数组中。每个值都会根据此数组进行检查,以确保相同的值不会被处理两次
如果该值是唯一的,则会在“选择”菜单中添加一个额外选项
它在这里工作:.unique()
只在dom元素数组上工作-从文档中,对dom元素数组进行排序,并删除重复项。请注意,这只适用于DOM元素数组,而不适用于字符串或数字。
Hey,@acdcjunior,如何将months.sort()函数更改为按数字排序?瓦鲁·马诺·尔希,在那里!什么号码<代码>数据mes
是数字吗?嗯,不D.unique()
仅适用于dom元素数组-从文档中对dom元素数组进行排序,并删除重复项。请注意,这只适用于DOM元素数组,而不适用于字符串或数字。
Hey,@acdcjunior,如何将months.sort()函数更改为按数字排序?瓦鲁·马诺·尔希,在那里!什么号码<代码>数据mes是数字吗?嗯,不D