找到选择器使用jQuery

时间:2015-09-11 14:10:20

标签: javascript jquery css css-selectors jquery-selectors

我正在创建一个jQuery插件,我想知道是否有一种方法可以找到用户用来应用插件的选择器。例如,如果用户选择此项:

$(".myClass").pluginName();

然后插件将返回myClass,然后可以在以后使用。有没有办法可以做到这一点?

2 个答案:

答案 0 :(得分:4)

假设这是您的选择:

var $selection = $('a, i');

如果您想获取选择器,只需使用selector属性:

var selector = $selection.selector;

在这种情况下,selector变量的值将是字符串a, i

注意:

虽然jQuery 1.11.0和jQuery 2.1.3中包含selector属性,但jQuery 3.0.0 alpha1似乎缺少它。这可能是原因:

  

jQuery 1.7中不推荐使用.selector属性   维持在jQuery中支持.live()所需的程度   迁移插件。它可能会在将来的版本中删除,恕不另行通知。

     

source

如果你能想出这个功能应该保留在jQuery核心中的一个很好的理由,你可能希望吸引jQuery开发团队并请求他们改变他们删除该功能的决定。

答案 1 :(得分:1)

检查调试器中的jQuery对象,它有一个属性selector,其中包含用于创建集合的选择器。我不知道这是否是公共API,您可以指望在将来的版本中仍然可用,或者这是一个可能在没有警告的情况下更改的实现细节。

与其他评论者一样,我质疑是否需要引用选择器。在您的插件中,您可以简单地遍历所有选定的元素,而无需再次通过DOM进行搜索。只需在插件中使用this.each()即可。