假设我有一个功能:
$.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');
)
答案 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);