有没有办法通过jquery获得用来查找元素的选择器?例如,我选择了一个这样的元素:
<span class="test1">lala</span>
a = $('.test1, .test2')
a
中是否有保存.test1
选择器字符串的属性?我能想到的唯一解决方案就是遍历所有选择器,然后测试它们是否匹配
var selectors = ['.test1', '.test2'];
a = $(selectors.join(','))
var selector = selectors.find(function(s)return a.is(s))
发布于 2014-01-27 10:23:12
您可以使用.selector,但它在1.7中被弃用,并在1.9中被删除
console.log(a.selector) //returns .test
发布于 2014-01-27 10:24:57
作为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");
发布于 2014-01-27 10:40:52
这不是那么简单。因为Anton这样做的方式已经被弃用了。但是事件变量包含了非常隐蔽的选择器。
看看我是如何做到的:
$('.test, .test2').on('click', function (e) {
console.log 'Selector: ', e.currentTarget.classList[0]
}
在这里也是一个有效的小提琴: http://jsfiddle.net/fKyZ4/2/
https://stackoverflow.com/questions/21378269
复制