【发布时间】:2013-10-24 09:11:01
【问题描述】:
我希望能够进行这种选择:
$('input[value between 6 and 11]');
这会给我 9 和 10。 有没有办法做到这一点?
【问题讨论】:
标签: jquery css-selectors
我希望能够进行这种选择:
$('input[value between 6 and 11]');
这会给我 9 和 10。 有没有办法做到这一点?
【问题讨论】:
标签: jquery css-selectors
您可以使用.filter() 执行此操作,如下所示:
$("input").filter(function() {
return $(this).val() >= 6 && $(this).val() <= 11;
}).somethingHere();
如果您需要经常使用它,您也可以将其设为选择器:
jQuery.expr[':'].between = function(a, b, c) {
var args = c[3].split(',');
var val = parseInt(jQuery(a).val());
return val >= parseInt(args[0]) && val <= parseInt(args[1]);
};
然后你可以选择:
$("input:between(6, 11)")
如果您不希望范围包含在内,只需更改 >= 和 <=。
【讨论】:
你可以使用过滤器function:
$('input').filter(function(index) {
var value = parseInt($(this).val());
return !isNaN(value) && value > 6 && value < 11;
});
【讨论】:
你可以使用.filter():
$("input").filter(function(){
var v = parseInt($(this).val());
return (v > 9 && v < 11)
});
【讨论】: