Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 错误:语法错误,无法识别的表达式:#白名单"结束选项[value*=+;value+;]_Javascript_Jquery_Syntax Error - Fatal编程技术网

Javascript 错误:语法错误,无法识别的表达式:#白名单"结束选项[value*=+;value+;]

Javascript 错误:语法错误,无法识别的表达式:#白名单"结束选项[value*=+;value+;],javascript,jquery,syntax-error,Javascript,Jquery,Syntax Error,我得到了一个语法错误,但主要是因为我自己不知道如何编写它 我试过了,但我真的被卡住了。虽然我觉得我很亲近 我的代码如下: function hourselect_link_field(source_select, target_select){ var source_value = $('#' + source_select + ' :selected').val(); var time = parseInt(source_value.replace(":", ""));

我得到了一个语法错误,但主要是因为我自己不知道如何编写它

我试过了,但我真的被卡住了。虽然我觉得我很亲近

我的代码如下:

function hourselect_link_field(source_select, target_select){
    var source_value = $('#' + source_select + ' :selected').val();
    var time = parseInt(source_value.replace(":", ""));


    var time_values = $("#" + target_select + " option").map(function () {
        return this.value;
    }).get();


    $.each(time_values, function (index, value) {
        var set_time = parseInt(value.replace(":", ""));
        if (set_time <= time) {
            $("#" + target_select + " option[value*=  + value + ]").prop('disabled', true);
            $("#" + target_select + " option[value*=  + value + ]").addClass('disabled');

        }
    });

//    console.log('time values = ' + time_values);

    //alert(time);
}
更具体地说:

option[value*=  + value + ]"
我似乎无法获得正确的语法

我希望如果值为“00:00”,则应将其设置为禁用。 但它不起作用

我得到这个语法错误

尝试时:

        $("#" + target_select + " option[value*= " + value + "]").prop('disabled', true);
它也不起作用

那么我错过了什么

编辑:回答

由@Casper和@Bilal Siddiqui提供的解决方案

$.each(time_values, function (index, value) {
    var set_time = parseInt(value.replace(":", ""));
    if (set_time <= time) {
        $(`#${target_select} option[value*='${value}']`).prop('disabled', true);
        $("#" + target_select + " option[value*='" + value + "']").prop('disabled', true);
    }
});
$。每个(时间)值、函数(索引、值){
var set_time=parseInt(value.replace(“:”,”);

如果(设置时间为什么不尝试字符串文字:

$(`#${target_select} option[value*='${value}']`).prop('disabled', true);
$(`#${target_select} option[value*='${value}']`).addClass('disabled');
另一种方法

$("#" + target_select + " option").each(function () {
    var set_time = parseInt(this.value.replace(":", ""));
    if (set_time <= time) {
        $(this).prop('disabled', true);
        $(this).addClass('disabled');
    }
});
$(“#”+target_select+“option”)。每个(函数(){
var set_time=parseInt(this.value.replace(“:”,”);

如果(设置时间您可以使用旧方法或ES6模板文本

让select1='sel1';
让select2='sel2';
设val='00:00';
$(`#${select1}选项[value*='${val}]`).prop('disabled',true).addClass('disabled');
$(“#”+select2+”选项[value*=”“+val+”]”)。prop('disabled',true)。addClass('disabled');

00:10  
00:00  
00:10  
00:00  

您似乎有两个问题-导致问题的原因是什么?尝试解析到
00:00
或将其设置为禁用?
$(“#“+target_select+”选项[value*=“+value+”])。prop('disabled',true);
应该可以(尝试在
=
后面没有空格)-但它“不起作用”如果没有那么远。那么请确定问题的确切位置并将问题缩小到该问题。尝试此$(
#${target\u select}选项[value*='${value}']
).prop('disabled',true);你能创建一个完整的例子来演示这个问题吗?包括html和演示这个问题所需的最少代码。所以你只需要删除
=
后面的空格,我猜你的意思不是$(
#${target\u select}
=>”(或)“。但两者都给了我另一个语法错误。错误:语法错误,无法识别的表达式:#${target_select}选项[value*=${value}]jquery-3.4.1.min.js:2:13061现在感觉很笨。对不起。另外,我添加了另一种方法,这样可以避免同时使用map和loop。我添加了,但确实是“一”。但由于某些原因,它们拒绝了这项工作。我仍然不知道为什么。$(
#${target_select}选项[value*='${value}]]
)。prop('disabled',true);这是可行的,因为ES6支持Backtick。
$("#" + target_select + " option").each(function () {
    var set_time = parseInt(this.value.replace(":", ""));
    if (set_time <= time) {
        $(this).prop('disabled', true);
        $(this).addClass('disabled');
    }
});