Use querySelector over alternative DOM methods (#31280)

As per
https://github.com/go-gitea/gitea/pull/30115#discussion_r1626060164,
prefer `querySelector` by enabling
[`unicorn/prefer-query-selector`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-query-selector.md)
and autofixing all except 10 issues.

According to
[this](https://old.reddit.com/r/learnjavascript/comments/i0f5o8/performance_of_getelementbyid_vs_queryselector/),
querySelector may be faster as well, so it's a win-win.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
silverwind 2024-06-10 22:49:33 +02:00 committed by GitHub
parent a2304cb163
commit 507fbf4c3c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 165 additions and 168 deletions

View file

@ -9,19 +9,16 @@ function scrollToAnchor(encodedId) {
if (!encodedId) return;
const id = decodeURIComponent(encodedId);
const prefixedId = addPrefix(id);
let el = document.getElementById(prefixedId);
let el = document.querySelector(`#${prefixedId}`);
// check for matching user-generated `a[name]`
if (!el) {
const nameAnchors = document.getElementsByName(prefixedId);
if (nameAnchors.length) {
el = nameAnchors[0];
}
el = document.querySelector(`a[name="${CSS.escape(prefixedId)}"]`);
}
// compat for links with old 'user-content-' prefixed hashes
if (!el && hasPrefix(id)) {
return document.getElementById(id)?.scrollIntoView();
return document.querySelector(`#${id}`)?.scrollIntoView();
}
el?.scrollIntoView();