Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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,我想比较javascript或jquery中的值和逗号分隔的值。为此,我执行了以下代码,剩下的是什么 var str = $('#reg').val(); // i got str = 1,2,3 我需要将其与值进行比较,因此如何才能做到这一点: if (str == 1) { $('.WBE').show(); } else { $('.WBE').hide(); } if (str == 2) { $('.VOBE').show(); } else {

我想比较javascript或jquery中的值和逗号分隔的值。为此,我执行了以下代码,剩下的是什么

 var str = $('#reg').val();
 // i got str = 1,2,3
我需要将其与值进行比较,因此如何才能做到这一点:

if (str == 1) {
    $('.WBE').show();
} else {
    $('.WBE').hide();
}

if (str == 2) {
    $('.VOBE').show();
} else {
    $('.VOBE').hide();
}

if (str == 3) {
    $('.MBE').show();
} else {
    $('.MBE').hide();
}

您可以将字符串值转换为数组,并使用
$检查其中包含的值。inArray

var values=$('#reg').val().split(',');
$('.WBE')[$.inArray('1',值)!=-1?'show':'hide']();
$('.VOBE')[$.inArray('2',值)!=-1?'show':'hide']();
$('.MBE')[$.inArray('3',值)!=-1?'show':'hide']()

WBE
VOBE
分子束外延

如果要检查字符串是否包含1、2或3,则可以执行以下操作:

var str = $('#reg').val();

if(str.indexOf("1") != -1) {
    $('.WBE').show();
} else {
    $('.WBE').hide();
}
if(str.indexOf("2") != -1) {
    $('.VOBE').show();
} else {
    $('.VOBE').hide();
}
if(str.indexOf("3") != -1) {
    $('.MBE').show();
} else {
    $('.MBE').hide();
}
或使用三元运算符

$('.WBE')[~str.indexOf('1') ? 'show' : 'hide']();
$('.VOBE')[~str.indexOf('2') ? 'show' : 'hide']();
$('.MBE')[~str.indexOf('3') ? 'show' : 'hide']();
['WBE', 'VOBE', 'MBE'].forEach(function(class, index) {
    $(class)[~str.index(index+1) ? 'show' : 'hide']();
});
通过数组和三元运算符循环

$('.WBE')[~str.indexOf('1') ? 'show' : 'hide']();
$('.VOBE')[~str.indexOf('2') ? 'show' : 'hide']();
$('.MBE')[~str.indexOf('3') ? 'show' : 'hide']();
['WBE', 'VOBE', 'MBE'].forEach(function(class, index) {
    $(class)[~str.index(index+1) ? 'show' : 'hide']();
});

这只在0-9的情况下有效。如果您有两个或更多的数字,那么您可能应该转换为数组,并检查数组是否包含数字…

嗯,
“1,2,3”==“1”
为假,所以您必须更具体一些?这就是我问这个问题的原因。我不知道如何比较它。你是说如果
str
包含1,还是
str
包含2等等?你检查过你的控制台有没有错误?您可以从代码片段中看到,考虑到您问题中的信息,这应该可以正常工作。是的,在控制台中,我遇到了以下错误:$(…).val(…).split不是函数}},'errorCss':'error'});