您好我正在运行一个jQuery函数将一些数据发送到ajax请求我有一个if语句来获取下拉列表中的活动元素以将选择传递给ajax请求。像这样:
$('#filters #region_dd ul.dropdown li a').click(function (e) {
$('#filters #region_dd ul.dropdown li a').removeClass('active');
$('#centre_dd > .active').text("Select a Centre").toggleClass('active');
$('#centre_dd > ul.dropdown li a.active').toggleClass('active');
console.info('Selected Region: "' + $(this).attr('href') + '"');
if ($('.date-selection li a.active')) {
date = $('.date-selection > li a.active').attr('href');
} else if($('#year_dd .dropdown.year-selection > li > a.active')) {
date = $('#year_dd .dropdown.year-selection > li > a.active').attr('href');
} else {
date = null;
}
var region = $(this).attr('href');
filterData.update('/overview', region, null, date);
});
然而,如果.year-selection > li > a.active
处于活动状态.date-selection > li > a.active
为真,那么即使{{1}}为真,其他条件也永远不会被捕获。我有什么想法我的错误,如果??
答案 0 :(得分:3)
我可以看到的一个问题是你将jQuery对象传递给if条件,这总是很简单,所以无论是否有符合条件.date-selection li a.active
的元素,if
块都将得到执行。
if ($('.date-selection li a').hasClass('active')) {
date = $('.date-selection > li a').attr('href');
} else if ($('#year_dd .dropdown.year-selection > li > a').hasClass('active')) {
date = $('#year_dd .dropdown.year-selection > li > a.active').attr('href');
} else {
date = null;
}