#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), ваша консоль должна позволить вам проверять дочерние элементы элемента.