Javascript Jquery脚本不起作用,所以我必须修复代码
我想禁用选择框中的一些字段,具体取决于日期和时间。我有一个商业网站。在我的结帐页面上,我有一个选择框,里面有我交付产品的特定日期和时间列表。我想防止访客在下单当天安排送货。我的送货日期是星期三10:00-12:00、星期三16:00-18:00、星期六10:00-12:00和星期六12:00-14:00 如果访客在星期三结账,我想通过在选择框中禁用Wed来阻止他们选择Wed交付日期,这样他们只能在星期六10:00-12:00和星期六12:00-14:00之间进行选择。Sat也是如此 我正在尝试编写一些jQuery代码,但它不起作用。请问,有人能帮我修复这个代码吗Javascript Jquery脚本不起作用,所以我必须修复代码,javascript,jquery,Javascript,Jquery,我想禁用选择框中的一些字段,具体取决于日期和时间。我有一个商业网站。在我的结帐页面上,我有一个选择框,里面有我交付产品的特定日期和时间列表。我想防止访客在下单当天安排送货。我的送货日期是星期三10:00-12:00、星期三16:00-18:00、星期六10:00-12:00和星期六12:00-14:00 如果访客在星期三结账,我想通过在选择框中禁用Wed来阻止他们选择Wed交付日期,这样他们只能在星期六10:00-12:00和星期六12:00-14:00之间进行选择。Sat也是如此 我正在尝试编
我们将非常感谢你的帮助。非常感谢你 正如那篇评论所说,结尾缺少一个}。此外,在这种情况下,let是比var更好的语句,因为var将全局声明变量,而let将把它限制在这个小范围内。此外,变量名不应该在末尾加上is作为后缀,因为==运算符可以为您这样做。另外,我不认为hide方法可以用于option元素,所以应该使用remove方法。此外,您可能需要检查选项的值是否是站点实际使用的值。通常,选项值是所选内容的浓缩、非详细的缩写,因此这也可能是问题所在。不管怎样,以下是对你有用的方法:
jQuery(document).ready(function() {
let now = new Date();
let day = now.getDay();
if (day == 3) {
jQuery("#billing_woocmm9 option[value^='mercoledì']").remove();
}
else if (day == 6) {
jQuery("#billing_woocmm9 option[value^='sabato']").remove();
}
}
这里有一种替代方法,它使用字典查找来避免一点点代码重复:
jQuery(document).ready(function() {
let now = new Date();
let day = now.getDay();
let day_value_prefixes = {
3: "mercoled",
6: "sabato",
};
if (day_value_prefixes.hasOwnProperty(day)) {
jQuery("#billing_woocmm9 option[value^='"+day_value_prefixes[day]+"']").remove();
}
}
注意,在这两种方法中,我都使用了value^=。这里的^=运算符选择以字符串开头的值,这样我们就可以忽略字符串结尾的所有空格。一般来说,我喜欢避免基于这样的奇怪字符进行选择,以避免由于未被注意到的双空格或任何东西而产生的任何问题。此外,同样的道理,我通常不喜欢在内部使用非ascii字符,如ì,在非面向用户的情况下,以防出现一些奇怪的编码问题,导致它们与选择器不匹配,或者如果有一些外观非常相似但技术上不同的字符,我会将它们混淆
如果您仍然有问题,如果您能发布相关的html,这将是很有帮助的。可能是您的选择器不知何故关闭了-可能是您对select标记使用了错误的id或其他内容。您可能还需要检查脚本是否实际加载到页面上。您发布的代码看起来无效。因为它是在一行//现在。。。最后对代码的其余部分进行注释。最后似乎还缺少一个}。
jQuery(document).ready(function() {
let now = new Date();
let day = now.getDay();
let day_value_prefixes = {
3: "mercoled",
6: "sabato",
};
if (day_value_prefixes.hasOwnProperty(day)) {
jQuery("#billing_woocmm9 option[value^='"+day_value_prefixes[day]+"']").remove();
}
}