我正在创建一个jQuery插件,我想知道是否有一种方法可以找到用户用来应用插件的选择器。例如,如果用户选择此项:
$(".myClass").pluginName();
然后插件将返回myClass
,然后可以在以后使用。有没有办法可以做到这一点?
答案 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()
所需的程度 迁移插件。它可能会在将来的版本中删除,恕不另行通知。
如果你能想出这个功能应该保留在jQuery核心中的一个很好的理由,你可能希望吸引jQuery开发团队并请求他们改变他们删除该功能的决定。
答案 1 :(得分:1)
检查调试器中的jQuery对象,它有一个属性selector
,其中包含用于创建集合的选择器。我不知道这是否是公共API,您可以指望在将来的版本中仍然可用,或者这是一个可能在没有警告的情况下更改的实现细节。
与其他评论者一样,我质疑是否需要引用选择器。在您的插件中,您可以简单地遍历所有选定的元素,而无需再次通过DOM进行搜索。只需在插件中使用this.each()
即可。