JQuery селектор контекстный вопрос - PullRequest
6 голосов
/ 16 февраля 2009

Я пытаюсь сделать следующий выбор:

$(".program", row)

Где "row" - это объект jQuery, содержащий две строки таблицы. У одного из tr есть класс 'program'. Похоже, этот селектор его не находит. Однако работает следующее:

$(".title", row)

где div.title является потомком tr.program.

Если я использую объект jQuery в качестве контекста селектора, я не могу сопоставить элементы верхнего уровня этого объекта jQuery?

спасибо,

-Morgan

Ответы [ 4 ]

6 голосов
/ 16 февраля 2009

Похоже, вы пытаетесь выбрать элементы из уже выбранных вами (находящихся в объекте jQuery).

Контекст в том, что касается jQuery, похож на указание родителя - контекст где-то находится над тем, что вы ищете в дереве DOM. В этом контексте jQuery будет искать указанный селектор.

Если я правильно понял, что вы пытаетесь сделать, это должно сработать:

row.filter('.program');

// And then:
row.filter('.program').find('.title');
2 голосов
/ 16 февраля 2009

Насколько я понимаю, контекст должен быть корневым, то есть родителем, внутри которого вы хотите сделать свой выбор.

EDIT: Теперь, прочитав немного, вы сможете сопоставить элементы контекста верхнего уровня (контекст по умолчанию document).

Beardscratchers имеет хорошую статью об использовании контекста с селекторами jQuery. В общем, вы должны попытаться передать идентификатор элемента в качестве контекста для упакованного набора jQuery, так как это наиболее эффективный способ найти элемент.

Внутри контекст селектора реализован методом .find, поэтому $(selector, context) эквивалентен $(context).find(selector)

0 голосов
/ 16 февраля 2009

Ты на правильном пути с потомками. При передаче контекста в селектор выполняется поиск всех потомков, найденных в этом контексте.

В вашем случае, поскольку объект не является «родителем, содержащим две строки», а скорее «коллекцией строк», .program не может быть выбран. Поскольку .title является фактическим потомком в вашей коллекции, его можно выбрать.

0 голосов
/ 16 февраля 2009

Скорее всего, вы можете соответствовать элементам верхнего уровня. Можем ли мы увидеть источник, который вы используете? Ваш код должен работать, поэтому, возможно, проблема в самом HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...