Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   XPath селекторы (https://javascript.ru/forum/library-toolkit-framework/12943-xpath-selektory.html)

SV0L0CH 09.11.2010 16:32

XPath селекторы
 
Интересует какая-нибудь реализация выборки из документа по XPath, желательно с интерфейсом подобным JQuery. Ато некоторые вещи через CSS задавать неудобно и непривычно.

subzey 09.11.2010 19:59

<p><span class="name">Коля</span> завёл себе <span class="animal">собаку</span>.</p>
<p><span class="name">Вася</span> держит дома <span class="animal">кошку</span>.</p>
<p><span class="name">Юля</span> держала <span class="animal">хомяка</span>, пока он не умер.</p>
<p>А еще, <span class="name">Сергей</span> и его <span class="animal">собаки</span>, похоже, знают, от чего он умер.</p>
<script>
var owners = document.evaluate(
	'/descendant::span[@class="animal"][contains(string(), "собак")]/ancestor::p/span[@class="name"]',
	document,
	null,
	XPathResult.ANY_TYPE,
	null
);
var o;
while (o = owners.iterateNext()){
	o.style.backgroundColor = "yellow";
};
</script>


Под ИЕ до 8 версии, как обычно, есть костыли.

monolithed 09.11.2010 20:17

Для справки: В первых версиях jQuery использовалась библиотека cssQuery реализующая выборку селекторов через XPath, но потом ее сменила Sizzle. Никто не знает почему?

SV0L0CH 09.11.2010 20:22

Хм... оно даже нативно есть... тем-более странно, что этим не пользуются :blink:


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