Доступ к элементу DOM в плагине jQuery в mouseenter

#javascript #jquery #jquery-plugins

#javascript #jquery #jquery-плагины

Вопрос:

Я пишу персональный плагин, и он должен выполнять действие при наведении курсора мыши на определенный элемент. Я запускаю console.log($(this)); и console.log($this); (у меня есть var $this = $(this) , прежде чем я объявлю свои параметры по умолчанию.

В любом случае, при выводе этого материала на консоль я просто получаю объект с информацией об узле, т. Е. <li id="some_id_here"></li> , Но в нем нет текста <li> (внутри него есть текст, а также <span>...</span> .

Кто-нибудь может мне здесь помочь? Не уверен, что мне нужно сделать, чтобы получить фактический текст <li>

Спасибо!

Примечание: это действительно был случай моего назначения $this = $(this) . Как только я скорректировал номенклатуру, все встало на свои места. Спасибо за вашу помощь!

Комментарии:

1. .innerText и .innerHTML ?

2. Обычно они отображаются внутри объекта, из которого я бы вышел. Это просто пустой объект, обернутый тегами li…

3. Я думаю, это связано с моим объявлением $this = $ (this) …

4. Текст должен появиться. Можете ли вы опубликовать какой-нибудь html?

5. У меня все отлично работает jsfiddle.net/wRgNC/1

Ответ №1:

Если у вас есть $this = $ (this); тогда вы можете просто сделать:

 $this.html(); // Retrieve HTML inside "<li>" referenced by $this
$this.text(); // Retrieve plain text inside "<li>" referenced by $this
  

Итак, вы могли бы попробовать:

 console.log( $this.html() );
  

Для дальнейшего чтения ознакомьтесь с документацией по методам jQuery .html() и .text() здесь .

Приветствия!

Ответ №2:

Как насчет

 console.log($(this).html())
  

Ответ №3:

Первое, что this находится внутри плагина jQuery, — это объект jQuery, нет необходимости делать $(this) , взгляните на признаки плохо написанного плагина jQuery

Если вы хотите, чтобы html вашего элемента this.html();

Если вам нужен текст, выполните this.text();

Если вы просто это сделаете console.log(this) , вы обычно видите маленькую стрелку с левой стороны, которая позволяет развернуть элемент.

Комментарии:

1. Я думаю, что эта маленькая стрелка сбоку может быть ключом.

2. Это неверно . В функции обработчика событий jQuery this это ссылка на запускающий элемент DOM. Чтобы получить объект jQuery, вы должны выполнить $(this) .

3. Джош, он прав, в данном случае это плагин. Я буду 1, чтобы противостоять понижению.

4. Ах да — вопрос неоднозначен относительно того, есть ли у него проблема в обработчике событий; Я предполагал console.log , что вызов происходит в обработчике (это вполне может быть). Я бы отменил голосование, но не могу .

Ответ №4:

 console.log(this);
  

Если вы регистрируете простой элемент DOM (вместо объекта-оболочки jQuery), ваша консоль должна позволить вам проверять дочерние элементы элемента.