Подтвердить что ты не робот

Jquery select element by xpath

У меня есть селектор xpath. Как я могу получить элементы, соответствующие этому селектору с помощью jquery?

Я видел https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript, но он не использует jquery, и он кажется немного слишком подробным, и я полагаю, что его не кросс-браузер.

Кроме того, этот http://jsfiddle.net/CJRmk/ не работает...

4b9b3361

Ответ 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');

Надеюсь, это поможет.