多个ID jQuery Selector返回的不同于单个ID选择器

时间:2016-07-06 20:38:19

标签: javascript jquery html css

所以我有一些下拉菜单,我最初设置这些菜单以确定选择了哪个下拉列表然后加载元素,没有问题。

现在我添加了一组新的下拉菜单,现在我的现有功能也适用于这一项,因为它非常广泛

$(document).on('click', '.dropdown-menu li a', function () {...}

现在我在模态中的4个不同选项卡上有这些下拉菜单,我只希望最后一个选项卡的功能与其他三个选项卡不同,所以我想创建一个适用于原始3个选项卡的功能和一个适用于第4个选项卡的功能选项卡。

前三个标签IDS

#racksTab
#condenserTab
#glycolTab

第四个标签(不同)     #alertTab

所以我的问题是,当我的选择器使用多个ID而不是1

时,为什么会得到不同的结果
$(document).on('click', '#racksTab,#condenserTab,#glycolTab .dropdown-menu li a', function () {...}

这个功能给了我 multiple ids selector

但是,如果我使选择器只使用一个id,它将获得我想要的子节点

$(document).on('click', '#racksTab .dropdown-menu li a', function () {...}

Single ID selector

2 个答案:

答案 0 :(得分:3)

因为有了这个选择器:

  

#racksTab,#condenserTat,#glycolTab .dropdown-menu li a

您的目标是三个元素:

  1. ID为racksTab

  2. 的元素
  3. ID为condenserTab

  4. 的元素
  5. a内容li内容.dropdown-menu ID {1}}

  6. 的孩子

    我想你想要所有元素,比如第三个,所以你的选择器必须是:

      

    #racksTab .dropdown-menu li a,#condenserTab .dropdown-menu li a,#glycolTab .dropdown-menu li a


    注意:也许您根本不需要这些选择器,我认为您可以使用更合适的选择器来改进您的代码,因为@ j08691指向评论,但所有选择都是基于真实标记,如果你添加它,我们可以帮助你改进代码。

答案 1 :(得分:2)

我认为这可能是你的目标:

$(document).on('click', '#racksTab .dropdown-menu li a, #condenserTab .dropdown-menu li a, #glycolTab .dropdown-menu li a'