我有一个由CMS创建的下拉列表,我无法访问源代码。下拉列表提供了一组从1902年到2040年不等的日期。我想删除某个点后的所有日期。我知道我可以使用下面的jQuery来taget具体日期,并删除它们:通过jQuery从下拉列表中删除选项集
$("#field_22_year option[value='2036']").remove();
但是,什么是删除一组数字的最有效的方式,说1996年之后的一切吗?
我有一个由CMS创建的下拉列表,我无法访问源代码。下拉列表提供了一组从1902年到2040年不等的日期。我想删除某个点后的所有日期。我知道我可以使用下面的jQuery来taget具体日期,并删除它们:通过jQuery从下拉列表中删除选项集
$("#field_22_year option[value='2036']").remove();
但是,什么是删除一组数字的最有效的方式,说1996年之后的一切吗?
George Mavritsakis的答案是合适的。 但你也可以做到这一点:
$('#field_22_year option[value]').each(function() {
if($(this).attr("value") > 2036) { $(this).remove(); };
});
使用
$('#field_22_year option[value]').filter(function() {
return $(this).attr("value") > 1996;
}).remove();
在这里看到如何在这里使用过滤器:Jquery filter()
function remove_date_after(initial_date){
$('#field_22_year').children().each(function(){
if($(this).val() > initial_date)
$(this).remove();
});
}
这里初始日期是要删除的下拉选项的值。例如,您可以拨打电话remove_date_after(1996)
,这将删除所有值大于1996的选项。
这很好,非常感谢! – Kev