Как получить идентификатор div, из которого была вызвана функция в jQuery? - PullRequest
0 голосов
/ 14 июня 2009

У меня есть функция jquery ('rater'), которую я вызываю следующим образом:

<div id="someID"></div>

<script type="text/javascript">
    $('#someID').rater({options});
</script>

Я хочу получить идентификатор (в данном случае 'someID'), чтобы затем использовать его внутри функции в качестве переменной.

Тогда я использую это как-то так:

if (??? == 'someID') { do something }

Как я могу это сделать?

Ответы [ 5 ]

5 голосов
/ 14 июня 2009

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

jQuery.fn.myPlugin = function() {
    alert( this.selector );
};

Доступ к селектору можно получить как свойство объекта jQuery.

Итак, если бы я назвал плагин так:

$('div #something').myPlugin();

Тогда "div #something" будет предупрежден.


Получение идентификатора элемента из плагина:

jQuery.fn.myPlugin = function() {
    alert( this.attr('id') );
};
4 голосов
/ 14 июня 2009

Не знаю, почему вы пытаетесь это сделать, но ...

// create jQuery plugin method: "rater"
jQuery.fn.rater = function() 
{
  // `this` is a jQuery object: process each matched element
  return this.each(function()
  {
    // `this` is a single matched element. Process it, somehow...
    if ( this.id == "someID" )
    {
      // do something special
    }

    // normal rater logic, whatever that might be
  });
};
1 голос
/ 01 февраля 2013

Будет выполнен поиск ближайшего вызываемого элемента div, а затем получен его атрибут.

if ($(this).closest("div").attr("id") == "someId") {
    // do stuff
}
1 голос
/ 14 июня 2009

Вы ищете селектор ?

После прочтения отредактированного вопроса снова звучит так, как будто вы хотите, чтобы строка идентификатора прошла.

<div id="someID"></div>

<script type="text/javascript">
    $("#someID").rater({options},$("#someID").selector);
</script>

Ради эффективности вы можете хранить $ ("# someID") в переменной, если хотите, поэтому вы можете делать запрос только один раз.

0 голосов
/ 14 июня 2009
if( $(this).attr('id') == 'someID' ) {
  // do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...