Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Элементы внутри this (https://javascript.ru/forum/jquery/22504-ehlementy-vnutri.html)

FINoM 24.10.2011 06:02

Цитата:

Сообщение от ksa
Это что оно делать будет?

Это подмена контекста. Если писать так:
$('a')
то это то же самое, что и
$('a', document)
В случае
$('a',  this)
поиск будет осуществляться в this (this.getElementsByTagName('a')).

ksa 24.10.2011 08:19

Ясно...

Триви 24.10.2011 11:48

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 132350)
Складывать объект и строку — отличная идея!

я пока в jq слабо))
насколько я понял в селектор всегда передается строка,
которая затем парсится jq и преобразуется в объекты?
так?

DjDiablo 24.10.2011 13:37

Цитата:

насколько я понял в селектор всегда передается строка,
которая затем парсится jq и преобразуется в объекты?
так?
не всегда
$(this).append("привет"); // this это ведь не строка, ровно как не строка и document

Вообще наверно не парсер, а наиболее коректное название, простой интерпретатор. Который анализирует и тут же выполняет.

Что касается терминов.
парсер - это Синтаксический анализатор. На выходе мы обычно получаем некоторую формализованную структуру данных описывающую синтаксис. Обычно это дерево. А есть ещё лексический, и семантический анализатор. Морфологического для формальных языков вот только почему то нет :)

У языка запросов структура помоему вообще линейная. Нет ни ветвлений, ни группировки команды. Каждая команда помоему модифицирует результат деятельности предыдущей.
Не знаю как работает интерпритатор в jquyery но думаю как-то так. Распарсили строку в массив при помощи регулярки, а затем по очереди берём ячейки, определяем что это в ней за команда и выполняем привязанную к селектору функцию, которая модифицирует результирующий массив. Итоговый массив нам по результату и вернут.

А вообще надо посмотреть на досуге как механизьм селекторов устроен в jquery. Любопытно стало.

Триви 24.10.2011 15:33

DjDiablo,
Да это я в дороге с мобы писал впопыхах ))
Сейчас уже на месте поразмыслил, всё стало на свои места..


Часовой пояс GMT +3, время: 00:13.