Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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/ajax/6.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中使用多个val_Javascript_Jquery - Fatal编程技术网

Javascript 在jQuery中使用多个val

Javascript 在jQuery中使用多个val,javascript,jquery,Javascript,Jquery,对此可能有一个非常简单的解决方案,但我的jQuery技能还没有达到很高的水平。 我使用下面的显示和隐藏基于下拉列表中的值的div。我想对其进行调整,使“否”和“”都能起作用。 我怎样才能做到这一点 提前谢谢 $('#q1').change(function(){ if ($(this).val() == "No") { $('#divv').show(); } else { $('#divv').hide(); } }); 在这种情况下,可以使用JavaScript(|): $('

对此可能有一个非常简单的解决方案,但我的jQuery技能还没有达到很高的水平。 我使用下面的显示和隐藏基于下拉列表中的值的div。我想对其进行调整,使“否”和“”都能起作用。 我怎样才能做到这一点

提前谢谢

$('#q1').change(function(){
 if ($(this).val() == "No") {
 $('#divv').show();
 } else {
 $('#divv').hide();
 }
 });

在这种情况下,可以使用JavaScript(
|
):

$('#q1').change(function() {
    value = this.value;
    if (value == "No" || value == "") {
        $('#divv').show();
    } else {
        $('#divv').hide();
    }
}
);
实际上,最适合的解决方案是:
if(value.toLowerCase()==“no”| | value==”){
无论在什么情况下,它都接受“no”

演示:


编辑:更新代码以满足Kolink和Bergi的要求

使用javascript或运算符(
|
):


有很多方法。我个人会这样做:

if( this.value.match(/(No)?/i)) {

i
允许
NO
NO
NO
也可以工作-如果您只想“NO”就将其删除。

复制并粘贴此项,这样应该可以工作

$('#q1').change(function(){
 if (($(this).val() == "No") || ($(this).val() == "")) {
 $('#divv').show();
 } else {
 $('#divv').hide();
 }
 });
委员会应:

$('#q1').change(function(){
    if (this.value == "No" || this.value == "") {
        $('#divv').show();
    } else {
        $('#divv').hide();
    }
});
我没有使用
$(this)
(特别是不是两次)来创建jQuery对象,只是使用了。如果您想(使用a,来检查空字符串和):

您可以使用
toggle()
,通过使用正则表达式检查值,将状态设置为显示或隐藏

$('#q1').on('change', function(){
    $('#divv').toggle(this.value.match(/(no|^$)/i));
});

匹配<代码>,因为它在PHP中类似于<代码> PrggMateS/<代码>。de>$(此)object两次。-特别是对于逻辑运算符,有更好的references@Kolink请仔细阅读:你实际上,也许是字面上,对每个答案都投了反对票,除了你自己的。@A.M.K我有理由对他们投反对票。这一次是因为对象效率低下,但我发现这一点已经得到了解决。现在我投反对票是因为对于
值==“null”
,我不知道它为什么在那里……我错误地认为,如果下拉项没有值,那么它将返回null,我测试并删除了它。由于创建了相同的
$,效率低下(此)
object两次。@Kolink-请您进一步解释一下引用
this
比引用变量效率更低的原因是什么?围绕
this
创建一个完整的jQuery对象是低效的。@Kolink
$(this)
对象现在只创建了一次,然后引用了两次:)现在您正在调用
val()
在其上运行两次。
$('#q1').change(function(){
    $('#divv')[ (this.value == "No" || !this.value) ? "show" : "hide" ]();
});
$('#q1').on('change', function(){
    $('#divv').toggle(this.value.match(/(no|^$)/i));
});