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

时间:2015-03-22 10:31:09

标签: javascript jquery if-statement

您好我正在运行一个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}}为真,其他条件也永远不会被捕获。我有什么想法我的错误,如果??

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;
}