我无法正确编写此条件。如果#number的值等于" 1"我想将其更改为并且#status_dropdown的值等于"活性"然后做的事情。这就是我到目前为止所做的:
var status = document.getElementById("status_dropdown").value;
$('#number').on('change', function(){
if ($(this).val() == "1" && (status).val() == " Active") {
$('div[class*="member-"], .amounts').hide();
$('.member-1, .donation-0').show();
} else if ($(this).val() == "2") {
$('div[class*="member-"]').hide();
$('.member-2').show();
} else if ($(this).val() == "3") {
$('div[class*="member-"]').hide();
$('.member-3').show();
} else if ($(this).val() == "0") {
$('div[class*="member-"]').hide();
}
});
这里是js与它的小提琴: https://jsfiddle.net/jelane20/c11z8xak/
我不确定如何将逻辑运算符与jQuery结合使用,但也可以使用直接的JS解决方案。
答案 0 :(得分:1)
您在页面就绪时存储状态选择的值。您也可以获取更改事件的价值,而不是(status).val()
使用$("#status_dropdown").val()
。
答案 1 :(得分:0)
这不起作用的原因是你将Vanilla JS与jQuery结合起来。在第一行中,您将状态视为#status-dropdown
的值,这在语法上是正常的。
然后您使用该值并将其传递给jQuery $(status)
,因此它尝试使用状态值的选择器查找元素。如果您只想要一个jQuery解决方案,则可以跳过第一行并将$(status)
替换为选择器$('#status-dropdown')
。
此外,您只需检查状态值一次,因此您的代码正在检查状态是否处于活动状态且初始条件的值是1,但它只检查状态的值$(this)
。
您可以为每项支票添加&& $('#status-dropdown').val() == "Active")
,或者最好先执行该检查:
$('#number').on('change', function() {
if ($('#status-dropdown').val() === 'Active') {
if ($(this).val() === "1") {
$('div[class*="member-"], .amounts').hide();
$('.member-1, .donation-0').show();
} else if ($(this).val() === "2") {
$('div[class*="member-"]').hide();
$('.member-2').show();
} else if ($(this).val() === "3") {
$('div[class*="member-"]').hide();
$('.member-3').show();
} else if ($(this).val() === "0") {
$('div[class*="member-"]').hide();
}
}
});
附注:我已将您的==
更改为===
以进行更有力的检查。