Jquery select element by xpath
У меня есть селектор xpath. Как я могу получить элементы, соответствующие этому селектору с помощью jquery?
Я видел https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript, но он не использует jquery, и он кажется немного слишком подробным, и я полагаю, что его не кросс-браузер.
Кроме того, этот http://jsfiddle.net/CJRmk/ не работает...
Ответы
Ответ 1
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.
Ответ 2
Если вы отлаживаетесь или похожи. В инструментах разработчика Chrome вы можете просто использовать
$x('/html/.//div[@id="text"]')
Ответ 3
Сначала создайте функцию выбора 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');
Надеюсь, это поможет.