Есть ли альтернатива jQuery / sizzle, которая поддерживает textNodes как первоклассных граждан в селекторах?

обнаружил, что мне нужны селекторы с полной поддержкой DOMtextNodes, что jQuery не делаетт предоставить.

jQuery игнорирует текстовые узлы, возможно, потому, что большинство страниц содержат тонны нерелевантных пустых между тегами, которые различные браузеры могут обрабатывать по-разному.

Большинство ответов на вопросы jQuery о текстовых узлах сводятся к использованию.contents() функция, которая возвращает все дочерние узлы для выбранных элементов, включая текстовые узлы - все остальные API jQuery игнорируют текстовые узлы.

Часто ты нене нужно то, что не можетлегко строиться на.contents() но я оказался в такой ситуации.

Мой вариант использования заключается в том, что я хочу найти и обернуть произвольные фрагменты текста на сторонних веб-страницах, которые я не могу контролировать. (Вспомните расширение браузера или пользовательский скрипт.)

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

Но теперь я обнаружил, что иногда мне нужны все возможности селекторов jQuery / sizzle, чтобы сузить фокус до определенных возможностей классов внутри классов и т. Д.

Я рассмотрел способы расширения JQuery сtextNode селектор, но это кажется невозможным из-за распространенного правила игнорирования текстовых узлов, которое отфильтровывает многие из них, прежде чем будет вызвано мое расширение.

Таким образом, я 'Я ищу какой-то другой инструмент JavaScript, который предлагает что-то вроде селекторов, но позволяет выбирать текстовые узлы, произвольно смешанные в синтаксисе выражения селектора.

Вот'Вот пример того, что мне нужно сделать:

$('.ii:even > div > TXT, .ii:even > div > div.im > TXT')

Вот'Это пример, которого я лично не имеюпока не нужно, но можно легко представить:

$('#something .somethingElse TXT')

Когда вы можете обратиться (выбрать) непосредственный родитель (ы) textNodes, перебирая их.contents() это легко, не так, когда вы можете только идентифицировать некоторого произвольного предка, но хотите, чтобы все текстовые узлы были ниже этого, что, конечно, тривиально для узлов элементов.

Ответы на вопрос(1)

Ваш ответ на вопрос