getElementsByClassName returns nothing for multiple or space-padded class names
メンテナーはふだん 5 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- javascript, node.js
- 領域
- web-dev
調査の方向性
issue では esm/mixin/parent-node.js が示されています。ここでは getElementsByClassName が分割されていない引数を classList.has に渡しています。まずこのメソッドと関連するテストを読み、その動作を DOM 仕様の ASCII 空白とすべてのクラスに関する要件と比較してください。複数のクラス名、逆の順序、前後の空白を対象とするテストを追加してください。4 つの例すべてがそれぞれ 1 件の一致を返せば完了です。
索引モデルが issue の本文から書いたものです。
説明
getElementsByClassName matches the whole argument as a single class, so "a b", "b a" or " a " find nothing.
const { parseHTML } = require("linkedom");
const { document } = parseHTML('<!doctype html><html><body><p class="a b">x</p></body></html>');
console.log(
document.getElementsByClassName("a").length,
document.getElementsByClassName("a b").length,
document.getElementsByClassName("b a").length,
document.getElementsByClassName(" a ").length
);
node t.js
Expected: 1 1 1 1
Actual: 1 0 0 0
Tested with linkedom 0.18.15 from npm and main at 6e2ae0c, Node.js 26.13.0.
The DOM spec splits the argument on ASCII whitespace and requires all classes (https://dom.spec.whatwg.org/#concept-getelementsbyclassname). getElementsByClassName in esm/mixin/parent-node.js calls classList.has(className) with the unsplit string.
Credit: https://ucsbplse.github.io/
- 主要言語
- HTML
- スター
- 2.1k
- フォーク
- 117
- 平均マージ
- 4日 13時間
- マージ済み PR(30日)
- 2
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
WebReflection/linkedom のほかの issue
-
Parsing splits one text run into several Text nodes at each character reference (`<p>a & b</p>` gives 3 child nodes)対応中かも @johnhldiver-beep が 9 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
WebReflection/linkedom#353 · コメント 1 件 ·
メンテナーはふだん 5 日以内に返信
-
SVG elements in an HTML document report an upper-cased tagName ("PATH" instead of "path")対応中かも @jonasporto が 9 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
WebReflection/linkedom#344 · コメント 1 件 ·
メンテナーはふだん 5 日以内に返信
-
`TextElement.toString()` puts the element text back at the first `><` of the start tag, so an attribute value containing `><` swallows the text of `<style>`, `<script>`, `<title>` and `<textarea>`対応中かも @vsolano9 が 22 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
WebReflection/linkedom#341 · コメント 1 件 ·
メンテナーはふだん 5 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
WebReflection/linkedom#340 · コメント 1 件 ·
メンテナーはふだん 5 日以内に返信
-
Element#matches() compiles the selector on every call対応中かも @jonasporto が 22 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
WebReflection/linkedom#348 · コメント 1 件 ·
メンテナーはふだん 5 日以内に返信
WebReflection/linkedom の issue をすべて見る
似ている issue
-
bug implicit-state
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
v6: OTP input keeps the rest of a selection when you type over it対応中かも @thejesh23 が今日担当しました。 オープンbug confirmed has-pr js v6
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
twbs/bootstrap#43323 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
book-layout.spec fails when the similar-books rail holds other projects' books対応中かも @praetorianer777 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
praetorianer777/GoTome#373 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信