Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery脚本不起作用,所以我必须修复代码_Javascript_Jquery - Fatal编程技术网

Javascript 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也是如此 我正在尝试编

我想禁用选择框中的一些字段,具体取决于日期和时间。我有一个商业网站。在我的结帐页面上,我有一个选择框,里面有我交付产品的特定日期和时间列表。我想防止访客在下单当天安排送货。我的送货日期是星期三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代码,但它不起作用。请问,有人能帮我修复这个代码吗


我们将非常感谢你的帮助。非常感谢你

正如那篇评论所说,结尾缺少一个}。此外,在这种情况下,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();
    }

}