从jQuery.fn方法中获取查询选择器

时间:2013-10-17 12:13:37

标签: jquery jquery-selectors

假设我有一个功能:

$.fn.foo = function (arg) {
    // some code
}

通常称之为:

$('#bar.baz').foo("banana");

是否可以检索'查询'选择器('#bar.baz')来自函数$.fn.foo

例如:

$.fn.foo = function (arg) {
    console.log($(this).getQuerySelector()); // --> '#bar.baz'
}

或者是否有必要将其作为参数($('#bar.baz').foo('#bar.baz', 'banana');

传递

2 个答案:

答案 0 :(得分:1)

规范的答案是使用jQuery对象的selector属性:

$.fn.foo = function(arg) {
    console.log(this.selector);
};

但是,自jQuery 1.7以来,该属性已被弃用:

  

jQuery 1.7中不推荐使用.selector属性   维持在jQuery中支持.live()所需的程度   迁移插件。它可能会在将来的版本中删除,恕不另行通知。   该属性从来都不是选择器的可靠指标   用于获取当前包含的元素集   jQuery设置它是一个属性,因为后续的遍历方法   可能已经改变了设置。

因此,最好将选择器作为新代码中的显式参数传递。

答案 1 :(得分:0)

是的,它正在使用.selector

console.log($(this).selector);