jQuery: получить оригинальный селектор - PullRequest
8 голосов
/ 27 августа 2011

Я нахожусь в процессе написания плагина и хотел бы получить оригинальный селектор, который jQuery использовал для создания объекта.

Поэтому, если вы хотите применить что-то вроде .siblings(), вы можете получить всех братьев и сестер этого типа, независимо от того, ищет ли он братьев и сестер определенного класса или братьев и сестер определенного типа.

  • jQuery('div') - 'div'
  • jQuery(jQuery('div')) - '[jQuery] object' // would require recursively finding the selector of this
  • jQuery('#elment') - '#element'
  • jQuery('.class') - '.class'

Ответы [ 3 ]

10 голосов
/ 27 августа 2011

Просто получите доступ к свойству selector объекта jQuery:

console.log($("div").selector); // 'div'
console.log($("#foo").selector); // '#foo'
2 голосов
/ 27 августа 2011

Как продолжение того, что поставил Карим:

var t = jQuery('.clName');

t.each(function(){ 
   jQuery(this).data('selector',t.selector);
});
1 голос
/ 28 августа 2018

Это дольше кажется возможным ... '.selector' был удален в версии 3, и вместо этого jquery рекомендует дважды передать селектор.

https://api.jquery.com/selector/....

Свойство .selector устарело в jQuery 1.7 и поддерживается только в той степени, которая необходима для поддержки .live () в плагине jQuery Migrate.Он может быть удален без предварительного уведомления в будущей версии. Свойство никогда не было надежным индикатором селектора, который можно было бы использовать для получения набора элементов, в настоящее время содержащихся в наборе jQuery, где оно было свойством, поскольку последующие методы обхода могли изменить этот набор.Необходимость использования строки селектора в их плагине может потребоваться в качестве параметра метода.Например, плагин "foo" может быть записан как $ .fn.foo = function (selector, options) {/ * код плагина находится здесь * /}; и человек, использующий плагин, напишет $ ("div.bar") .foo (" div.bar ", {dog:" bark "}); с селектором "div.bar", повторяемым в качестве первого аргумента .foo () .

...