我有一个具有多个值的数据属性(data-day =“5,6,7”),我想将今天的日期与这些值进行比较。请在下面找到我创建的代码,但只有在数据属性中只有一个值时才能正常工作。我如何检查和比较今天的日期与属性中的多个值?
<script>
jQuery(document).ready(function(JQuery){
var date = new Date();
var getday = date.getDay();
var show = 'today';
jQuery(".cd-gallery ul li").each(function() {
var running_days = JQuery(this).data('day');
if (getday == running_days) {
JQuery(this).addClass('today');
}
else {
}
});
});
</script>
<section class="cd-gallery">
<ul>
<li class="mix weekends" data-day="5,6,7" >
答案 0 :(得分:5)
您可以使用split()
将逗号分隔的字符串转换为数组,然后使用indexOf
查找数组中的匹配值。试试这个:
jQuery(document).ready(function($){
var getday = new Date().getDay();
var show = 'today';
$(".cd-gallery ul li").each(function() {
var running_days = $(this).data('day').split(',');
if (running_days.indexOf(getday.toString()) != -1)
$(this).addClass('today');
});
});
请注意,getDay()
会返回星期几。今天是星期五,意味着它将返回5
。如果您想获得当月的日期(今天为17
),请使用getDate()
。
答案 1 :(得分:1)
您可以split
值并匹配您所达到的条件
jQuery(document).ready(function(JQuery){
var date = new Date();
var getday = date.getDay();
var show = 'today';
jQuery(".cd-gallery ul li").each(function() {
var running_days = JQuery(this).data('day');
var arr = running_days.split(',');
$.each(arr, function( index, value ) {
alert(value)
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<section class="cd-gallery">
<ul>
<li class="mix weekends" data-day="5,6,7" >
答案 2 :(得分:-1)
var str = '5,6,7'; // = JQuery(this).data('day');
var daysArray = str.split(',');
for(...) {
...
}
或indexOf
正如@Roy McCrossan所说。检查价值会更好,但是。在比较之前可能需要修剪这一天。
答案 3 :(得分:-1)
您可以使用:
<script>
jQuery(document).ready(function(JQuery){
var date = new Date();
var getday = date.getDay();
var show = 'today';
jQuery(".cd-gallery ul li").each(function() {
var list_item = JQuery(this);
var running_days = JQuery(this).data('day');
var running_days_data = new Array();
if(running_days){
running_days.split(',').each(function(i,val){
running_days_data.push(val);
});
}
if ($.inArray(getday, running_days_data) > -1;) {
$(list_item).addClass('today');
}
else {
}
});
});
</script>
答案 4 :(得分:-1)
只需使用此选择器即可匹配数据日属性中的日期。
jQuery(".cd-gallery li[data-day*=" + getday + "]").addClass("today");
试试这个,让我知道它是否适合你:)