运行 如果包含属性值的一部分则执行操作
Run action if contains part of an attr value
我对此有意见
attr('data-disabled-dates','12/02/2022; 13/02/2022; 14/02/2022; 15/02/2022; 10/03/2022; 11/03/2022; 16/02/2022')
还有一个动态生成明天的常量,所以对于这种情况,结果是“16/02/2022”
如果明天的日期在 attr 数据禁用日期范围内,我想 运行 采取行动。
所以我尝试了这个
if (jQuery(input).attr('data-disabled-dates') == '16/02/2022')
{ console.log('work') } else {
console.log ('not') }
但它只在整个序列完全相同时才给出 true,也就是说,如果我输入“12/02/2022;13/02/2022...”是否会给出结果,但是如果我输入的值在里面,我只希望它为真
您可以使用 String.includes()
或 String.split('; ')
将字符串转换为数组并检查它是否包含所需的值。
if (jQuery(input).attr('data-disabled-dates').includes('16/02/2022')) {
console.log('work')
} else {
console.log('not')
}
普通 JS 中的工作示例
const div = document.querySelector('#data');
const dates = div.getAttribute('data-disabled-dates');
if (dates.includes('16/02/2022')) {
console.log('work')
} else {
console.log('not')
}
// or
if (dates.split('; ').includes('16/02/2022')) {
console.log('work')
} else {
console.log('not')
}
<div id="data" data-disabled-dates="12/02/2022; 13/02/2022; 14/02/2022; 15/02/2022; 10/03/2022; 11/03/2022; 16/02/2022" />
==
执行精确的字符串匹配,而不是子字符串匹配。
您可以使用.split()
将属性值拆分成数组,然后使用.includes()
测试数组是否包含日期。
if (jQuery(input).data('disabled-dates').split('; ').includes('16/02/2022')) {
console.log("work");
} else {
console.log("not");
}
indexOf可以大于0,如果需要支持IE,可以使用indexOf
var dataAttrValue = jQuery(input).attr('data-disabled-dates');
var date = '16/02/2022';
if (typeof dataAttrValue !== 'undefined' && dataAttrValue.indexOf(date)) > 0) { console.log('work');
} else {
console.log ('not');
}
或
jQuery(input).is(“[data-disabled-dates*='16/02/2022']”);
但我建议使用 JQuery 数据来存储和检索元素的值。
我对此有意见
attr('data-disabled-dates','12/02/2022; 13/02/2022; 14/02/2022; 15/02/2022; 10/03/2022; 11/03/2022; 16/02/2022')
还有一个动态生成明天的常量,所以对于这种情况,结果是“16/02/2022”
如果明天的日期在 attr 数据禁用日期范围内,我想 运行 采取行动。
所以我尝试了这个
if (jQuery(input).attr('data-disabled-dates') == '16/02/2022')
{ console.log('work') } else {
console.log ('not') }
但它只在整个序列完全相同时才给出 true,也就是说,如果我输入“12/02/2022;13/02/2022...”是否会给出结果,但是如果我输入的值在里面,我只希望它为真
您可以使用 String.includes()
或 String.split('; ')
将字符串转换为数组并检查它是否包含所需的值。
if (jQuery(input).attr('data-disabled-dates').includes('16/02/2022')) {
console.log('work')
} else {
console.log('not')
}
普通 JS 中的工作示例
const div = document.querySelector('#data');
const dates = div.getAttribute('data-disabled-dates');
if (dates.includes('16/02/2022')) {
console.log('work')
} else {
console.log('not')
}
// or
if (dates.split('; ').includes('16/02/2022')) {
console.log('work')
} else {
console.log('not')
}
<div id="data" data-disabled-dates="12/02/2022; 13/02/2022; 14/02/2022; 15/02/2022; 10/03/2022; 11/03/2022; 16/02/2022" />
==
执行精确的字符串匹配,而不是子字符串匹配。
您可以使用.split()
将属性值拆分成数组,然后使用.includes()
测试数组是否包含日期。
if (jQuery(input).data('disabled-dates').split('; ').includes('16/02/2022')) {
console.log("work");
} else {
console.log("not");
}
indexOf可以大于0,如果需要支持IE,可以使用indexOf
var dataAttrValue = jQuery(input).attr('data-disabled-dates');
var date = '16/02/2022';
if (typeof dataAttrValue !== 'undefined' && dataAttrValue.indexOf(date)) > 0) { console.log('work');
} else {
console.log ('not');
}
或
jQuery(input).is(“[data-disabled-dates*='16/02/2022']”);
但我建议使用 JQuery 数据来存储和检索元素的值。