в jQuery выбрать элемент по XPath
у меня есть селектор xpath. Как я могу получить элементы, соответствующие селектору с помощью jQuery?
кроме того, это http://jsfiddle.net/CJRmk/ кажется, не работает.
alert($("//a").length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<a href="a1.php"></a>
<a href="a2.php"></a>
3 ответа:
document.evaluate()
(DOM Level 3 XPath) поддерживается в Firefox, Chrome, Safari и Opera - единственный крупный браузер отсутствует MSIE. Тем не менее, jQuery поддерживает основные выражения XPath:http://docs.jquery.com/DOM/Traversing/Selectors#XPath_Selectors (перемещено в плагин в текущей версии jQuery, см. https://plugins.jquery.com/xpath/). однако он просто преобразует выражения XPath в эквивалентные селекторы CSS.
Если вы отлаживаете или аналогичные - в Chrome developer tools, вы можете просто использовать
$x('/html/.//div[@id="text"]')
сначала создайте функцию выбора xpath.
function _x(STR_XPATH) { var xresult = document.evaluate(STR_XPATH, document, null, XPathResult.ANY_TYPE, null); var xnodes = []; var xres; while (xres = xresult.iterateNext()) { xnodes.push(xres); } return xnodes; }
чтобы использовать селектор xpath с jquery, вы можете сделать так:
$(_x('/html/.//div[@id="text"]')).attr('id', 'modified-text');
надеюсь, что это может помочь.