我有一系列 div
元素,类为“row”,属性为 data-date-month
和 data-date-day
.
我想计算具有 row
类且其属性与今天的日期和月份匹配的元素的数量。
据我所知,搜索与月份匹配的所有 div
元素如下:
function calculateStats(){
var d = new Date();
var tmon = d.getMonth() + 1;
var tday = d.getDate();
var numMatches = $('div.row[data-date-month="' + tmon + '"]').length;
}
我理解如何完成此操作的唯一方法是使用 $.each()
:
var numMatches = 0;
$('div.row[data-date-month="' + tmon + '"]').each(function(){
if ($(this).attr('data-date-day') == tday)
numMatches++;
});
但是,当可能有数百个元素需要扫描时,这是一个非常密集的函数。
如何有效地搜索以找到与日期匹配的元素,或者我是否必须使用 $.each()
?
最佳答案
你可以使用两个属性选择器,像这样:
var numMatches = $('div.row[data-date-month="' + tmon + '"][data-date-day="' + tday + '"]').length;
或者,您可以使用 filter()
:
var numMatches = $('div.row').filter(function() {
var $el = $(this);
return $el.data('date-month') == tmon && $el.data('date-day') == tday;
}).length;
关于javascript - 如何搜索匹配两个属性的div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30355647/