Можно ли, например, для метода getElementById, сократить область поиска со всей страницы до какой-либо отдельной части HTML-документа? В примере
<div id="container">
<div id="element">
</div>
</div>
можно конечно, сначала найти container, а потом внутри него уже искать element, но container-то мы ищём опять же по всему документу, а это нерационально в больших документах. Можно ли как-то ограничить зону поиска?
Что-то мне подсказывает, что при построении дерева все ссылки на элементы ID собираю в одном месте и потом используются для быстрого поиска по дереву. Поэтому то, что вы хотите оптимизировать и так уже оптимизировано. Но не буду этого утверждать.
В общем как один из вариантов, можно натыкать меток и ограничивать ими, если уж так хочется. По крайней мере они точно собраны в одном месте и до них легко добраться.
console.log(
document.anchors["part_2"].innerText
)
<div>
<a name="part_1">
part 1
</a>
</div>
<div>
<a name="part_2">
part 2
</a>
</div>
<div>
<a name="part_3">
part 3
</a>
</div>
Даже не могу сообразить для чего тебе это надо. id - идентификатор уникальный и может быть только в единственном экземпляре на все странице. И даже если данный экземпляр будет в начале страницы или где-то далеко и обернут в тысячу родительских блоков, это ни как не повлияет на скорость его обнаружения.... Ну может на миллионную долю секунды.... Так что в этом нет ни какого смысла....
Можно.
Это имеет смысл для поиска например по имени тега, классу или более сложному селектору.
Но для поиска по id это смысла не имеет, так как все id хранятся в хэш таблице и поиск по ней происходит очень быстро (за константное время операций), и там уже нечего ускорять.
var area = document.getElementById("searchArea");
var els = area.getElementsByTagName("p");
/* можно и по id поискать, но скорее всего это будет медленнее чем поиском через document.getElementById */
var el1 = area.querySelector("#id1");
console.log(Array.from(els));
console.log(el1);
<p>
some text
</p>
<div id="searchArea">
<p id="id1">11</p>
<p>22</p>
</div>
<p>
some text
</p>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей