2016-11-08 3 views
7

Второе утверждение в этом коде:

var $this = $(this).children('div.submenu1').children('a.subtile')[0], 
title = $this.text(), 
name = $this.attr('node').val; 

производит эту ошибку:

Uncaught TypeError: $this.text is not a function 

Когда я парить над $this.text() в Chrome отладчика я могу видеть значение, которое я хочу иметь в title.

Как исправить эту ошибку?

+2

$ это объект DOM не, объект jquery, либо оберните его, как $ ($ this) .text() ot $ this.innerText, чтобы прочитать текст –

ответ

9

Это происходит потому, что вы назначаете переменную $this родную ссылку DOM, а не ссылку jQuery. Только последний имеет доступ к API jQuery.

Вы делаете это путем «достижения внутри» массива типа jQuery и извлечения основной ссылки через [0]. Потерять это, и он будет работать:

var $this = $(this).children('div.submenu1').children('a.subtile'), 
title = $this.text(), //<-- now has access to jQuery API 
+0

Это работает отлично! Благодаря! – Cruncher

2

$ это DOM объект не объект JQuery, либо обернуть его как $($this).text() или $this.innerText читать текст

0

Поскольку это был первый результат, для меня, когда я пойду в Google, я отправлю сообщение о проблеме/решении. Я написал Text() вместо текста(). i. Моя капитализация была неправильной.

Смежные вопросы