我已经卡在某个地方,可能是最简单的问题,但我尽可能多地尝试谷歌搜索,但没有找到确切的结果。
在我的woocomerce / WordPress网站上,我想根据日历上的预订开始和结束日期显示预订的产品数量。当用户在日历上的日期悬停时,预订产品的数量将显示在日期之下。 (我正在开发一个租赁网站,其中包含从开始到结束的日期范围,就像酒店一样,这可以忽略。)
但是如果在8月18日的情况下说我们预订了两件商品,我想在那里展示“2预订”
为此,我正在使用inArray函数。
我试过了console.log(jQuery.inArray(some, only_dates))
这给了我结果 截图,我们已经有了8月18日,所以在第二次,我想把它算作2&然后同样在19 - 8月和&等等。
对于我们可以尝试的一个对象
if(jQuery.inArray(some, only_dates) == 1)
{
console.log('found')
}
但在我的情况下,我如何使用inArray动态循环(多于),然后打印出现次数。
任何帮助将不胜感激。谢谢。
修改 所以这是我的代码
$sepr_date = getDatesFromRange($start, $end); /*a function that coverts range dates into sequence*/
foreach ($sepr_date as $dt) {?>
<script type="text/javascript">
ds = {'Date': new Date("<?php echo $dt; ?>"), 'Title': 'Booked', 'Link': 'javascript:void(0)'},
events_s.push(ds)
var some = "<?php echo $dt; ?>"
only_dates.push(some)
console.log(some)
console.log(only_dates)
if(jQuery.inArray(some, only_dates) != -1)
{
console.log('found ' + some)
}
</script>
<?}?>
控制台给予:
在推动物品时,我想检查存在。 如果找到,增加计数。 如果没有找到,那就什么都不做。
答案 0 :(得分:1)
您可以使用grep
功能:
var count = $.grep(only_dates, function (elem) {
return elem === some;
}).length;
答案 1 :(得分:0)
就像内置的indexOf
一样,$.inArray()
在未找到值时返回-1
,因此您必须与之进行比较。
if (jQuery.inArray(some, only_dates) != -1) {
console.log('found');
}