Подтвердить что ты не робот

Получить текущую строку выбора jQuery?

При вызове настраиваемого плагина, как я могу получить текущую селекторную строку?

$('my_selector p').my_plugin();

Хотелось бы вывести my_selector p в мой script. Как я могу получить доступ к этой строке?

4b9b3361

Ответ 1

Вы можете использовать свойство selector:

$('my_selector p').selector // my_selector p

версия устарела: 1.7, удалено: 1.9

Ответ 2

Отмена выбора селектора v. 1.7:

Если вы используете только идентификаторы и классы в качестве селекторов, вы можете использовать следующее:

var selector = (typeof($(this).attr('id')) !== 'undefined' || $(this).attr('id') !== null) ? '#' + $(this).attr('id') :  '.' + $(this).attr('class');

Есть более чистые способы, но с момента удаления .selector из-за несогласованности между браузерами с 1.7, это был мой go-to.

Ответ 3

jQuery.fn.getSelector = function() {
        return this.data('selector');
};

Ответ 4

С отключенным сектором я использую

index = document.getElementById('category').value
select = $("#category option[value=#{index}]")[0].innerHTM

всего две строки кода

или если вы действительно дешевы с линиями

select = $("#category option[value=#{document.getElementById('category').value}]")[0].innerHTML

Ответ 5

Устаревшим, официальным советом является добавление селектора в качестве параметра в ваш вызов функции: https://api.jquery.com/selector/

Плагины, которые должны использовать селекторную строку в своем плагине, могут потребовать ее в качестве параметра метода. Например, плагин "foo" может быть записан как

$.fn.foo = function( selector, options ) { /* plugin code goes here */ };

и человек, использующий плагин, напишет

$( "div.bar" ).foo( "div.bar", {dog: "bark"} );

Резервный, да, но он всегда надежный.