jquery onclick if..否则如果..否则无法正常工作

jquery onclick if ...else if ...else not working correctly

本文关键字:常工作 工作 onclick if 如果 jquery      更新时间:2023-09-26

Hi我正在运行一个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是活动的,那么其他条件也从未被捕获,那么这就通过了。你知道我的其他if做错了什么吗??

我可以看到的一个问题是,您将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;
}