可能有一个非常简单的解决方案,但我的jQuery技能还不是很多。 我使用下面显示和隐藏基于下拉列表中的值的div。我想改编它,所以“不”和“”都会起作用。 我如何实现这个目标?
提前致谢
$('#q1').change(function(){
if ($(this).val() == "No") {
$('#divv').show();
} else {
$('#divv').hide();
}
});
答案 0 :(得分:0)
在这种情况下,您可以使用JavaScript logical or operator(||
):
$('#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
答案 1 :(得分:0)
使用javascript OR运算符(||
):
$('#q1').change(function(){
var thisVal = $(this).val();
if ((thisVal == "No") || (thisVal == "")) {
$('#divv').show();
} else {
$('#divv').hide();
}
});
答案 2 :(得分:0)
有很多方法。就个人而言,我会这样做:
if( this.value.match(/(No)?/i)) {
i
允许NO
,no
和nO
也有效 - 如果您只想要“否”,请将其删除。
答案 3 :(得分:0)
$('#q1').change(function(){
if (this.value == "No" || this.value == "") {
$('#divv').show();
} else {
$('#divv').hide();
}
});
我没有使用$(this)
(特别是两次)来创建jQuery对象,但只使用了plain javascript。更简洁,如果您需要(使用tertiary operator,not operator检查空字符串和bracket notation):
$('#q1').change(function(){
$('#divv')[ (this.value == "No" || !this.value) ? "show" : "hide" ]();
});
答案 4 :(得分:0)
您可以使用toggle()
并通过使用正则表达式检查值来设置要显示或隐藏的状态。
$('#q1').on('change', function(){
$('#divv').toggle(this.value.match(/(no|^$)/i));
});
答案 5 :(得分:-1)
复制并粘贴,这应该有效。
$('#q1').change(function(){
if (($(this).val() == "No") || ($(this).val() == "")) {
$('#divv').show();
} else {
$('#divv').hide();
}
});