有没有办法获取用于查找带有jquery的元素的选择器?例如 我选择了这样一个元素:
<span class="test1">lala</span>
a = $('.test1, .test2')
a
中的属性是否包含.test1
选择器字符串?
我能想到的唯一解决方案是ittearte over all选择器并测试它们是否匹配
var selectors = ['.test1', '.test2'];
a = $(selectors.join(','))
var selector = selectors.find(function(s)return a.is(s))
答案 0 :(得分:2)
你可以使用.selector但它在1.7中已弃用并在1.9中删除
console.log(a.selector) //returns .test
答案 1 :(得分:1)
作为Anton mentions,执行此操作的built-in way已被弃用(出于各种非常好的理由),并且已被删除。
这样做的可靠方法是:
var sel = ".test";
a = $(sel);
a.data("selector", sel);
如果您需要做很多事情,请使用函数将其封装
function $memo(selector) {
return $(selector).data("selector", selector);
}
// Usage:
a = $memo(".test");
然后,只要您需要知道,就可以从data
获取选择器:
var sel = a.data("selector");
答案 2 :(得分:0)
这并不容易。因为安东这样做的方式已被弃用。 但是事件变量包含非常隐藏的选择器。
看看我是如何实现它的:
$('.test, .test2').on('click', function (e) {
console.log 'Selector: ', e.currentTarget.classList[0]
}
这也是一个工作小提琴: http://jsfiddle.net/fKyZ4/2/