JS: разница между document.evaluate(".//html"... и document.evaluate("//html"...?

Точка (.) имеет значение в document.evaluate? Я проверил и, кажется, ничего не делает

Учебные руководства mozilla используют его в примерах https://developer.mozilla.org/en-US/docs/Web/API/document.evaluate

1 ответ

Точка обозначает текущий выбранный узел в дереве элементов, на котором вы находитесь.

Если вы посмотрите на определение функции, это показано здесь

var xpathResult = document.evaluate(
 xpathExpression, 
 *contextNode*, 
 namespaceResolver, 
 resultType, 
 result
);

Обычно документ передается как объект контекста. Если вы также заметили следующую строку с сайта, на который вы ссылались

В этом примере символ "." важно указать, что запрос должен начинаться с узла контекста

Все это, конечно, происходит из XPath.

Возможно, вы хотели бы взглянуть на селектор запросов, если не хотите использовать xpath: https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector

Другие вопросы по тегам