对此可能有一个非常简单的解决方案,但我的 jQuery 技能还没有达到多少。我正在使用下面的内容来显示和隐藏基于下拉列表中的值的 div。我想对其进行调整,以便“否”和“”都可以使用。我如何做到这一点?
提前致谢
$('#q1').change(function(){
if ($(this).val() == "No") {
$('#divv').show();
} else {
$('#divv').hide();
}
});
对此可能有一个非常简单的解决方案,但我的 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 == "") {
无论在什么情况下,这都会接受“否”。
演示:http: //jsfiddle.net/SO_AMK/YKeFy/1/
编辑:更新代码以满足 Kolink 和 Bergi
使用 javascript OR 运算符 ( ||
):
$('#q1').change(function(){
var thisVal = $(this).val();
if ((thisVal == "No") || (thisVal == "")) {
$('#divv').show();
} else {
$('#divv').hide();
}
});
有很多方法。我个人会这样做:
if( this.value.match(/(No)?/i)) {
i
允许NO
,no
并且nO
也可以工作 - 如果您只想要“否”,请将其删除。
逻辑OR
运算符应该这样做:
$('#q1').change(function(){
if (this.value == "No" || this.value == "") {
$('#divv').show();
} else {
$('#divv').hide();
}
});
我没有使用$(this)
(尤其不是两次)创建 jQuery 对象,而只是使用了普通的 javascript。更简洁,如果你愿意(使用三级运算符,非运算符来检查空字符串和括号表示法):
$('#q1').change(function(){
$('#divv')[ (this.value == "No" || !this.value) ? "show" : "hide" ]();
});
您可以通过使用toggle()
正则表达式检查值来使用和设置状态以显示或隐藏。
$('#q1').on('change', function(){
$('#divv').toggle(this.value.match(/(no|^$)/i));
});
小提琴 </p>
复制并粘贴这个,这应该工作。
$('#q1').change(function(){
if (($(this).val() == "No") || ($(this).val() == "")) {
$('#divv').show();
} else {
$('#divv').hide();
}
});